{
  "type": "object",
  "properties": {
    "config": {
      "$ref": "#/$defs/BaseConfigSchema"
    },
    "scenarios": {
      "type": "array",
      "description": "Definition of scenarios for your VUs to run:\nhttps://www.artillery.io/docs/reference/test-script#scenarios-section",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "title": "Scenario Name"
          },
          "weight": {
            "description": "Use this to specify that some scenarios should be picked more often than others.\nhttps://www.artillery.io/docs/reference/test-script#scenario-weights",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              }
            ],
            "title": "Scenario weight"
          }
        },
        "additionalProperties": true,
        "allOf": [
          {
            "if": {
              "type": "object",
              "properties": {
                "engine": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "enum": [
                    null,
                    ""
                  ]
                }
              },
              "additionalProperties": true
            },
            "then": {
              "type": "object",
              "properties": {
                "beforeScenario": {
                  "description": "Custom Javascript functions to run before each scenario\nhttps://www.artillery.io/docs/reference/engines/http#function-actions-and-beforescenario--afterscenario-hooks",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "beforeScenario hook"
                },
                "afterScenario": {
                  "description": "Custom Javascript functions to run after each scenario\nhttps://www.artillery.io/docs/reference/engines/http#function-actions-and-beforescenario--afterscenario-hooks",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "afterScenario hook"
                },
                "flow": {
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/HttpFlowItemSchema"
                  },
                  "title": "HTTP Engine Flow (Default)"
                }
              },
              "required": [
                "flow"
              ],
              "additionalProperties": true
            }
          },
          {
            "if": {
              "type": "object",
              "properties": {
                "engine": {
                  "const": "http"
                }
              },
              "additionalProperties": true
            },
            "then": {
              "type": "object",
              "properties": {
                "engine": {
                  "title": "HTTP Engine",
                  "const": "http"
                },
                "beforeScenario": {
                  "description": "Custom Javascript functions to run before each scenario\nhttps://www.artillery.io/docs/reference/engines/http#function-actions-and-beforescenario--afterscenario-hooks",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "beforeScenario hook"
                },
                "afterScenario": {
                  "description": "Custom Javascript functions to run after each scenario\nhttps://www.artillery.io/docs/reference/engines/http#function-actions-and-beforescenario--afterscenario-hooks",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "afterScenario hook"
                },
                "flow": {
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/HttpFlowItemSchema"
                  },
                  "title": "HTTP Engine Flow"
                }
              },
              "required": [
                "flow"
              ],
              "additionalProperties": true
            }
          },
          {
            "if": {
              "type": "object",
              "properties": {
                "engine": {
                  "const": "ws"
                }
              },
              "additionalProperties": true
            },
            "then": {
              "type": "object",
              "properties": {
                "engine": {
                  "title": "Websocket Engine",
                  "const": "ws"
                },
                "flow": {
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/WsFlowItemSchema"
                  },
                  "title": "Websocket Engine Flow"
                }
              },
              "required": [
                "flow"
              ],
              "additionalProperties": true
            }
          },
          {
            "if": {
              "type": "object",
              "properties": {
                "engine": {
                  "const": "websocket"
                }
              },
              "additionalProperties": true
            },
            "then": {
              "type": "object",
              "properties": {
                "engine": {
                  "title": "Websocket Engine",
                  "const": "websocket"
                },
                "flow": {
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/WsFlowItemSchema"
                  },
                  "title": "Websocket Engine Flow"
                }
              },
              "required": [
                "flow"
              ],
              "additionalProperties": true
            }
          },
          {
            "if": {
              "type": "object",
              "properties": {
                "engine": {
                  "const": "socketio"
                }
              },
              "additionalProperties": true
            },
            "then": {
              "type": "object",
              "properties": {
                "engine": {
                  "title": "SocketIo Engine",
                  "const": "socketio"
                },
                "flow": {
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/SocketIoFlowItemSchema"
                  },
                  "title": "SocketIo Engine Flow"
                }
              },
              "required": [
                "flow"
              ],
              "additionalProperties": true
            }
          },
          {
            "if": {
              "type": "object",
              "properties": {
                "engine": {
                  "const": "playwright"
                }
              },
              "additionalProperties": true
            },
            "then": {
              "type": "object",
              "properties": {
                "engine": {
                  "title": "Playwright Engine",
                  "const": "playwright"
                },
                "testFunction": {
                  "type": "string",
                  "description": "Equivalent to flowFunction.",
                  "title": "Test function"
                },
                "flowFunction": {
                  "type": "string",
                  "description": "Equivalent to testFunction.",
                  "title": "Flow function"
                }
              },
              "additionalProperties": true
            }
          },
          {
            "if": {
              "type": "object",
              "properties": {
                "engine": {
                  "type": "string",
                  "not": {
                    "type": "string",
                    "enum": [
                      "ws",
                      "websocket",
                      "socketio",
                      "http",
                      "playwright"
                    ]
                  }
                }
              },
              "additionalProperties": true
            },
            "then": {
              "type": "object",
              "properties": {
                "engine": {
                  "type": "string",
                  "title": "Custom Engine"
                },
                "flow": {
                  "type": [
                    "array",
                    "boolean",
                    "number",
                    "object",
                    "string",
                    "null"
                  ],
                  "title": "Custom Engine Flow"
                }
              },
              "additionalProperties": true
            }
          }
        ]
      },
      "title": "Scenarios Section"
    },
    "before": {
      "type": "object",
      "description": "Optional scenario to run once per test before the main scenarios section (in distributed mode, it's once per worker).\nhttps://www.artillery.io/docs/reference/test-script#before-and-after-sections",
      "properties": {
        "flow": {
          "type": "array",
          "description": "https://www.artillery.io/docs/reference/test-script#before-and-after-sections",
          "items": {
            "type": [
              "array",
              "boolean",
              "number",
              "object",
              "string",
              "null"
            ]
          },
          "title": "Flow object"
        }
      },
      "additionalProperties": true,
      "title": "Before Section"
    },
    "after": {
      "type": "object",
      "description": "Optional scenario to run once per test after the main scenarios section (in distributed mode, it's once per worker).\nhttps://www.artillery.io/docs/reference/test-script#before-and-after-sections",
      "properties": {
        "flow": {
          "type": "array",
          "description": "https://www.artillery.io/docs/reference/test-script#before-and-after-sections",
          "items": {
            "type": [
              "array",
              "boolean",
              "number",
              "object",
              "string",
              "null"
            ]
          },
          "title": "Flow object"
        }
      },
      "additionalProperties": true,
      "title": "After Section"
    }
  },
  "additionalProperties": true,
  "$defs": {
    "BaseConfigSchema": {
      "type": "object",
      "description": "https://www.artillery.io/docs/reference/test-script#config-section",
      "properties": {
        "target": {
          "type": "string",
          "examples": [
            "https://example.com",
            "ws://127.0.0.1"
          ],
          "description": "Endpoint of the system under test, such as a hostname, IP address or a URI.\nIn Playwright tests, this will be used as the baseURL by default.\n\nhttps://www.artillery.io/docs/reference/test-script#target---target-service",
          "title": "Target"
        },
        "phases": {
          "type": "array",
          "description": "A load phase defines how Artillery generates new virtual users (VUs) in a specified time period.\nhttps://www.artillery.io/docs/reference/test-script#phases---load-phases",
          "items": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "title": "Test Phase Name"
                  },
                  "duration": {
                    "description": "Test phase duration (in seconds).\nCan also be any valid human-readable duration: https://www.npmjs.com/package/ms .",
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string"
                      }
                    ],
                    "title": "Test Phase Duration"
                  },
                  "maxVusers": {
                    "description": "Cap the number of concurrent virtual users at any given time.",
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string"
                      }
                    ],
                    "title": "Maximum virtual users"
                  },
                  "arrivalRate": {
                    "description": "Constant arrival rate - i.e. the number of virtual users generated every second.\nhttps://www.artillery.io/docs/reference/test-script#constant-arrival-rate",
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string"
                      }
                    ],
                    "title": "Arrival Rate"
                  },
                  "rampTo": {
                    "description": "Ramp from initial arrivalRate to this value over time period.\nhttps://www.artillery.io/docs/reference/test-script#ramp-up-rate",
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string"
                      }
                    ],
                    "title": "Ramp up rate"
                  }
                },
                "required": [
                  "duration"
                ],
                "additionalProperties": false,
                "anyOf": [
                  {
                    "required": [
                      "arrivalRate"
                    ]
                  },
                  {
                    "required": [
                      "rampTo"
                    ]
                  }
                ],
                "title": "Arrival Rate Phase"
              },
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "title": "Test Phase Name"
                  },
                  "duration": {
                    "description": "Test phase duration (in seconds).\nCan also be any valid human-readable duration: https://www.npmjs.com/package/ms .",
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string"
                      }
                    ],
                    "title": "Test Phase Duration"
                  },
                  "maxVusers": {
                    "description": "Cap the number of concurrent virtual users at any given time.",
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string"
                      }
                    ],
                    "title": "Maximum virtual users"
                  },
                  "arrivalCount": {
                    "description": "Fixed number of virtual users over that time period.\nhttps://www.artillery.io/docs/reference/test-script#fixed-number-of-arrivals-per-second",
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string"
                      }
                    ],
                    "title": "Arrival Count"
                  }
                },
                "required": [
                  "duration",
                  "arrivalCount"
                ],
                "additionalProperties": false,
                "title": "Arrival Count Phase"
              },
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "title": "Test Phase Name"
                  },
                  "pause": {
                    "description": "Pause the test phase execution for given duration (in seconds).\nCan also be any valid human-readable duration: https://www.npmjs.com/package/ms.",
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string"
                      }
                    ],
                    "title": "Pause"
                  }
                },
                "required": [
                  "pause"
                ],
                "additionalProperties": false,
                "title": "Pause Phase"
              }
            ],
            "title": "Test Phase"
          },
          "title": "Phases"
        },
        "http": {
          "type": "object",
          "properties": {
            "timeout": {
              "description": "Increase or decrease request timeout",
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "title": "Request Timeout"
            },
            "maxSockets": {
              "description": "Maximum amount of TCP connections per virtual user.\nhttps://www.artillery.io/docs/reference/engines/http#max-sockets-per-virtual-user",
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "title": "Maximum Sockets"
            },
            "extendedMetrics": {
              "description": "Enable tracking of additional HTTP metrics.\nhttps://www.artillery.io/docs/reference/engines/http#additional-performance-metrics",
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "string"
                }
              ],
              "title": "Enable Extended Metrics"
            },
            "defaults": {
              "type": "object",
              "properties": {
                "headers": {
                  "type": "object",
                  "description": "Default headers to be used in all requests. Replace *. with your header name, and set string value.\nhttps://www.artillery.io/docs/reference/engines/http#default-configuration",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Default Headers"
                },
                "cookie": {
                  "type": "object",
                  "description": "Default cookies to be used in all requests. Replace *. with your cookie name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Default Cookies"
                },
                "strictCapture": {
                  "description": "Whether to turn on strict capture by default for all captures.\nhttps://www.artillery.io/docs/reference/engines/http#turn-off-strict-capture",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Strict capture"
                },
                "think": {
                  "type": "object",
                  "properties": {
                    "jitter": {
                      "description": "Sets jitter to simulate real-world random variance into think time pauses. Accepts both number and percentage.",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "additionalProperties": true,
                  "title": "Think Options"
                }
              },
              "additionalProperties": true,
              "title": "Configure Default Settings for all requests"
            }
          },
          "additionalProperties": true,
          "title": "HTTP Configuration"
        },
        "ws": {
          "type": "object",
          "properties": {
            "subprotocols": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "json",
                  "soap",
                  "wamp",
                  "xmpp"
                ]
              },
              "title": "Websocket sub-protocols"
            },
            "headers": {
              "type": "object",
              "properties": {
                "/.*/": {
                  "type": "string",
                  "properties": {},
                  "required": [],
                  "additionalProperties": true
                }
              },
              "additionalProperties": true,
              "patternProperties": {
                ".*": {
                  "type": "string",
                  "properties": {},
                  "required": [],
                  "additionalProperties": true
                }
              },
              "title": "Headers"
            },
            "proxy": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL"
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": true,
              "title": "Proxy"
            }
          },
          "additionalProperties": true,
          "title": "Websocket Configuration"
        },
        "socketio": {
          "type": "object",
          "description": "For more information on supported options, visit https://socket.io/docs/v4/client-api/",
          "properties": {
            "query": {
              "description": "Query parameters can be specified as a string or dictionary.",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "object",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  }
                }
              ],
              "title": "Query"
            },
            "path": {
              "type": "string"
            },
            "extraHeaders": {
              "type": "object",
              "description": "Extra headers may be passed with this option. \nThe extraHeaders option only works if the default polling transport is used. When using other transports, extra headers won't be taken into account by the server.",
              "properties": {
                "/.*/": {
                  "type": "string",
                  "properties": {},
                  "required": [],
                  "additionalProperties": true
                }
              },
              "additionalProperties": true,
              "patternProperties": {
                ".*": {
                  "type": "string",
                  "properties": {},
                  "required": [],
                  "additionalProperties": true
                }
              },
              "title": "Extra Headers"
            },
            "transports": {
              "type": "array",
              "description": "You can skip long-polling by using the transports option to specify WebSocket transport.",
              "items": {
                "const": "websocket"
              },
              "title": "Websocket Transports only"
            }
          },
          "additionalProperties": true,
          "title": "SocketIo Configuration"
        },
        "processor": {
          "type": "string",
          "description": "Path to a CommonJS (.js), ESM (.mjs) or Typescript (.ts) module to load for this test run.\nhttps://www.artillery.io/docs/reference/test-script#processor---custom-js-code",
          "title": "Processor Function Path"
        },
        "variables": {
          "type": "object",
          "description": "Map of variables to expose to the test run.",
          "properties": {},
          "additionalProperties": true,
          "title": "Variables"
        },
        "payload": {
          "description": "Load data from CSV to be used during the test run:\nhttps://www.artillery.io/docs/reference/test-script#payload---loading-data-from-csv-files",
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "title": "CSV Path"
                },
                "fields": {
                  "type": "array",
                  "description": "List of names of fields to be used in the test to load the data",
                  "items": {
                    "type": "string"
                  },
                  "title": "CSV Fields"
                },
                "order": {
                  "description": "Controls how the CSV rows are selected for each virtual user.",
                  "anyOf": [
                    {
                      "const": "random"
                    },
                    {
                      "const": "sequence"
                    }
                  ],
                  "title": "Order"
                },
                "skipHeader": {
                  "description": "Set to `true` to make Artillery skip the first row in the CSV file (typically the header row)",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Skip Header?"
                },
                "delimiter": {
                  "type": "string",
                  "description": "Custom delimiter character to use in the payload.",
                  "title": "Delimiter"
                },
                "cast": {
                  "description": "Controls whether Artillery converts fields to native types (e.g. numbers or booleans). To keep those fields as strings, set this option to `false`.",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Cast?"
                },
                "skipEmptyLines": {
                  "description": "Controls whether Artillery should skip empty lines in the payload.",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Skip empty lines?"
                },
                "loadAll": {
                  "description": "Set loadAll to true to provide all rows to each VU",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Load all data"
                },
                "name": {
                  "type": "string",
                  "description": "Name of loadAll data",
                  "title": "Data Name"
                }
              },
              "additionalProperties": true
            },
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string",
                    "title": "CSV Path"
                  },
                  "fields": {
                    "type": "array",
                    "description": "List of names of fields to be used in the test to load the data",
                    "items": {
                      "type": "string"
                    },
                    "title": "CSV Fields"
                  },
                  "order": {
                    "description": "Controls how the CSV rows are selected for each virtual user.",
                    "anyOf": [
                      {
                        "const": "random"
                      },
                      {
                        "const": "sequence"
                      }
                    ],
                    "title": "Order"
                  },
                  "skipHeader": {
                    "description": "Set to `true` to make Artillery skip the first row in the CSV file (typically the header row)",
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ],
                    "title": "Skip Header?"
                  },
                  "delimiter": {
                    "type": "string",
                    "description": "Custom delimiter character to use in the payload.",
                    "title": "Delimiter"
                  },
                  "cast": {
                    "description": "Controls whether Artillery converts fields to native types (e.g. numbers or booleans). To keep those fields as strings, set this option to `false`.",
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ],
                    "title": "Cast?"
                  },
                  "skipEmptyLines": {
                    "description": "Controls whether Artillery should skip empty lines in the payload.",
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ],
                    "title": "Skip empty lines?"
                  },
                  "loadAll": {
                    "description": "Set loadAll to true to provide all rows to each VU",
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ],
                    "title": "Load all data"
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of loadAll data",
                    "title": "Data Name"
                  }
                },
                "additionalProperties": true
              }
            }
          ],
          "title": "CSV Payload"
        },
        "tls": {
          "type": "object",
          "properties": {
            "rejectUnauthorized": {
              "type": "boolean",
              "title": "Set this setting to `false` to tell Artillery to accept self-signed TLS certificates."
            }
          },
          "additionalProperties": true,
          "title": "TLS Settings"
        },
        "bundling": {
          "type": "object",
          "description": "Configuration for bundling the test script and its dependencies",
          "properties": {
            "external": {
              "type": "array",
              "description": "Can be used when using Typescript (.ts) processors. List npm modules to prevent them from being bundled. Use in case there are issues with bundling certain packages.\nhttps://www.artillery.io/docs/reference/test-script#preventing-bundling-of-typescript-packages",
              "items": {
                "type": "string"
              },
              "title": "External Packages"
            }
          },
          "additionalProperties": true,
          "title": "Bundling"
        },
        "plugins": {
          "type": "object",
          "description": "List of Artillery plugins to use (official or third-party) and their configuration",
          "properties": {
            "expect": {
              "type": "object",
              "properties": {
                "outputFormat": {
                  "type": "string",
                  "enum": [
                    "pretty",
                    "json",
                    "prettyError",
                    "silent"
                  ],
                  "title": "Output Format"
                },
                "formatter": {
                  "type": "string",
                  "description": "Please use the `outputFormat` option instead.",
                  "enum": [
                    "pretty",
                    "json",
                    "prettyError",
                    "silent"
                  ],
                  "title": "(Deprecated) Formatter"
                },
                "reportFailuresAsErrors": {
                  "description": "Reports failures from expect plugin as errors in Artillery Report",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Report Failures as Errors"
                },
                "useOnlyRequestNames": {
                  "description": "Use request name instead of the URL path when logging requests in console and report",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Use Only Request Names"
                },
                "expectDefault200": {
                  "description": "Sets a 200 OK status code expectation for all requests.",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Expect 200 by default"
                }
              },
              "additionalProperties": false,
              "title": "Expect Plugin"
            },
            "ensure": {
              "type": "object",
              "properties": {
                "thresholds": {
                  "type": "array",
                  "description": "Ensure that a metric is under some threshold value.\nhttps://www.artillery.io/docs/reference/extensions/ensure#threshold-checks",
                  "items": {
                    "type": [
                      "array",
                      "boolean",
                      "number",
                      "object",
                      "string",
                      "null"
                    ]
                  },
                  "title": "Threshold Checks"
                },
                "conditions": {
                  "type": "array",
                  "description": "Set more complex expressions for additional checks.\nhttps://www.artillery.io/docs/reference/extensions/ensure#advanced-conditional-checks",
                  "items": {
                    "type": "object",
                    "properties": {
                      "expression": {
                        "type": "string",
                        "title": "Conditional Expression"
                      },
                      "strict": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "type": "string"
                          }
                        ],
                        "title": "Strict?"
                      }
                    },
                    "additionalProperties": false
                  },
                  "title": "Conditional Checks"
                },
                "min": {
                  "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Min"
                },
                "max": {
                  "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Max"
                },
                "median": {
                  "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Median"
                },
                "p95": {
                  "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "P95"
                },
                "p99": {
                  "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "P99"
                },
                "maxErrorRate": {
                  "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Max Error Rate"
                }
              },
              "additionalProperties": false,
              "title": "Ensure Plugin"
            },
            "apdex": {
              "type": "object",
              "properties": {
                "threshold": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string"
                    }
                  ]
                }
              },
              "additionalProperties": false,
              "title": "Apdex Plugin"
            },
            "metrics-by-endpoint": {
              "type": "object",
              "description": "Visualise metrics per endpoint visited during your HTTP test. Docs: https://www.artillery.io/docs/reference/extensions/metrics-by-endpoint\nNote: this plugin is enabled by default, and will display per endpoint metrics in the report. If you want to see them in the console, enable it manually.",
              "properties": {
                "useOnlyRequestNames": {
                  "description": "Use request name property as endpoint name instead of the full URL. Recommended for dynamic URLs.",
                  "default": false,
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Use Only Request Names"
                },
                "stripQueryString": {
                  "description": "Strip query strings from the endpoint name automatically.",
                  "default": false,
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Strip Query String"
                },
                "ignoreUnnamedRequests": {
                  "description": "Ignore per-endpoint metrics for requests without a name property set.",
                  "default": false,
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Ignore Unnamed Requests"
                },
                "metricsNamespace": {
                  "type": "string",
                  "description": "Custom prefix to use for metrics published by this plugin.",
                  "default": "plugins.metrics-by-endpoint",
                  "title": "Metrics Namespace"
                }
              },
              "additionalProperties": false,
              "title": "Metrics by Endpoint Plugin"
            },
            "publish-metrics": {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "const": "cloudwatch"
                      },
                      "region": {
                        "type": "string"
                      },
                      "namespace": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "dimensions": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "value": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "name",
                            "value"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "includeOnly": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "excluded": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "sendOnlyTraces": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "traces": {
                        "type": "object",
                        "properties": {
                          "serviceName": {
                            "type": "string"
                          },
                          "sampleRate": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "useRequestNames": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "annotations": {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": true
                          },
                          "smartSampling": {
                            "type": "object",
                            "properties": {
                              "thresholds": {
                                "type": "object",
                                "properties": {
                                  "firstByte": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "total": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "additionalProperties": false
                          },
                          "replaceSpanNameRegex": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "pattern": {
                                  "type": "string"
                                },
                                "as": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "pattern",
                                "as"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": false,
                    "title": "Cloudwatch Reporter"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "const": "datadog"
                      },
                      "apiKey": {
                        "type": "string"
                      },
                      "appKey": {
                        "type": "string"
                      },
                      "apiHost": {
                        "type": "string"
                      },
                      "prefix": {
                        "type": "string"
                      },
                      "tags": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "includeOnly": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "excluded": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "event": {
                        "type": "object",
                        "properties": {
                          "title": {
                            "type": "string"
                          },
                          "text": {
                            "type": "string"
                          },
                          "priority": {
                            "type": "string",
                            "enum": [
                              "normal",
                              "low"
                            ]
                          },
                          "tags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "alertType": {
                            "type": "string",
                            "enum": [
                              "error",
                              "warning",
                              "info",
                              "success"
                            ]
                          },
                          "send": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          }
                        },
                        "additionalProperties": false
                      },
                      "sendOnlyTraces": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "traces": {
                        "type": "object",
                        "properties": {
                          "serviceName": {
                            "type": "string"
                          },
                          "sampleRate": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "useRequestNames": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "tags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "smartSampling": {
                            "type": "object",
                            "properties": {
                              "thresholds": {
                                "type": "object",
                                "properties": {
                                  "firstByte": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "total": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "additionalProperties": false
                          },
                          "replaceSpanNameRegex": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "pattern": {
                                  "type": "string"
                                },
                                "as": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "pattern",
                                "as"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": false,
                    "title": "Datadog Reporter"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "const": "newrelic"
                      },
                      "licenseKey": {
                        "type": "string"
                      },
                      "region": {
                        "type": "string"
                      },
                      "prefix": {
                        "type": "string"
                      },
                      "attributes": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "includeOnly": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "excluded": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "event": {
                        "type": "object",
                        "properties": {
                          "accountId": {
                            "type": "string"
                          },
                          "eventType": {
                            "type": "string"
                          },
                          "attributes": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "send": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          }
                        },
                        "required": [
                          "accountId"
                        ],
                        "additionalProperties": false
                      },
                      "sendOnlyTraces": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "traces": {
                        "type": "object",
                        "properties": {
                          "serviceName": {
                            "type": "string"
                          },
                          "sampleRate": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "useRequestNames": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "attributes": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "smartSampling": {
                            "type": "object",
                            "properties": {
                              "thresholds": {
                                "type": "object",
                                "properties": {
                                  "firstByte": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "total": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "additionalProperties": false
                          },
                          "replaceSpanNameRegex": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "pattern": {
                                  "type": "string"
                                },
                                "as": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "pattern",
                                "as"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type",
                      "licenseKey"
                    ],
                    "additionalProperties": false,
                    "title": "New Relic Reporter"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "const": "splunk"
                      },
                      "accessToken": {
                        "type": "string"
                      },
                      "realm": {
                        "type": "string"
                      },
                      "prefix": {
                        "type": "string"
                      },
                      "dimensions": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "includeOnly": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "excluded": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "event": {
                        "type": "object",
                        "properties": {
                          "eventType": {
                            "type": "string"
                          },
                          "dimensions": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "properties": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "send": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type",
                      "accessToken"
                    ],
                    "additionalProperties": false,
                    "title": "Splunk Reporter"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "const": "prometheus"
                      },
                      "pushgateway": {
                        "type": "string"
                      },
                      "tags": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "type",
                      "pushgateway"
                    ],
                    "additionalProperties": false,
                    "title": "Prometheus (Pushgateway) Reporter"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "const": "dynatrace"
                      },
                      "apiToken": {
                        "type": "string"
                      },
                      "envUrl": {
                        "type": "string"
                      },
                      "prefix": {
                        "type": "string"
                      },
                      "dimensions": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "includeOnly": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "excluded": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "event": {
                        "type": "object",
                        "properties": {
                          "eventType": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          },
                          "properties": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "entitySelector": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "send": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          }
                        },
                        "additionalProperties": false
                      },
                      "sendOnlyTraces": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "traces": {
                        "type": "object",
                        "properties": {
                          "serviceName": {
                            "type": "string"
                          },
                          "sampleRate": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "useRequestNames": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "attributes": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "smartSampling": {
                            "type": "object",
                            "properties": {
                              "thresholds": {
                                "type": "object",
                                "properties": {
                                  "firstByte": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "total": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "additionalProperties": false
                          },
                          "replaceSpanNameRegex": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "pattern": {
                                  "type": "string"
                                },
                                "as": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "pattern",
                                "as"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type",
                      "apiToken",
                      "envUrl"
                    ],
                    "additionalProperties": false,
                    "title": "Dynatrace Reporter"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "const": "honeycomb"
                      },
                      "apiKey": {
                        "type": "string"
                      },
                      "writeKey": {
                        "type": "string"
                      },
                      "dataset": {
                        "type": "string"
                      },
                      "sampleRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "enabled": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "useRequestNames": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "attributes": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": true
                      },
                      "smartSampling": {
                        "type": "object",
                        "properties": {
                          "thresholds": {
                            "type": "object",
                            "properties": {
                              "firstByte": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "total": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "replaceSpanNameRegex": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "pattern": {
                              "type": "string"
                            },
                            "as": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "pattern",
                            "as"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": false,
                    "title": "Honeycomb (Tracing) Reporter"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "const": "lightstep"
                      },
                      "accessToken": {
                        "type": "string"
                      },
                      "componentName": {
                        "type": "string"
                      },
                      "tags": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      },
                      "enabled": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      }
                    },
                    "required": [
                      "type",
                      "accessToken",
                      "componentName"
                    ],
                    "additionalProperties": false,
                    "title": "Lightstep (Tracing) Reporter"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "const": "mixpanel"
                      },
                      "projectToken": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "type",
                      "projectToken"
                    ],
                    "additionalProperties": false,
                    "title": "Mixpanel Reporter"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "const": "statsd"
                      },
                      "host": {
                        "type": "string"
                      },
                      "port": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "prefix": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": false,
                    "title": "StatsD Reporter"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "const": "influxdb-statsd"
                      },
                      "prefix": {
                        "type": "string"
                      },
                      "tags": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "event": {
                        "type": "object",
                        "properties": {
                          "priority": {
                            "type": "string",
                            "enum": [
                              "normal",
                              "low"
                            ]
                          },
                          "tags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": false,
                    "title": "InfluxDB/Telegraf Reporter"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "const": "open-telemetry"
                      },
                      "serviceName": {
                        "type": "string"
                      },
                      "metrics": {
                        "type": "object",
                        "properties": {
                          "endpoint": {
                            "type": "string"
                          },
                          "headers": {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": true
                          },
                          "exporter": {
                            "type": "string",
                            "default": "otlp-http",
                            "enum": [
                              "otlp-http",
                              "otlp-proto",
                              "otlp-grpc"
                            ]
                          },
                          "includeOnly": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "excluded": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "attributes": {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": true
                          }
                        },
                        "additionalProperties": false
                      },
                      "traces": {
                        "type": "object",
                        "properties": {
                          "endpoint": {
                            "type": "string"
                          },
                          "headers": {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": true
                          },
                          "exporter": {
                            "type": "string",
                            "default": "otlp-http",
                            "enum": [
                              "otlp-http",
                              "otlp-proto",
                              "otlp-grpc",
                              "zipkin"
                            ]
                          },
                          "sampleRate": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "useRequestNames": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "attributes": {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": true
                          },
                          "smartSampling": {
                            "type": "object",
                            "properties": {
                              "thresholds": {
                                "type": "object",
                                "properties": {
                                  "firstByte": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "total": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "additionalProperties": false
                          },
                          "replaceSpanNameRegex": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "pattern": {
                                  "type": "string"
                                },
                                "as": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "pattern",
                                "as"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": false,
                    "title": "OpenTelemetry Reporter"
                  }
                ]
              },
              "title": "Publish Metrics Plugin"
            },
            "fake-data": {
              "type": "object",
              "description": "This plugin adds access to random realistic test data generation using falso. You can configure the parameters of each function in the config. \nFor more information, check our documentation: https://www.artillery.io/docs/reference/extensions/fake-data",
              "properties": {
                "randAbbreviation": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAbbreviation"
                },
                "randAbn": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAbn"
                },
                "randAccessory": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAccessory"
                },
                "randAccount": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAccount"
                },
                "randAddress": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAddress"
                },
                "randAggregation": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAggregation"
                },
                "randAirline": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAirline"
                },
                "randAirport": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAirport"
                },
                "randAirportCode": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAirportCode"
                },
                "randAirportName": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAirportName"
                },
                "randAlpha": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAlpha"
                },
                "randAlphaNumeric": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAlphaNumeric"
                },
                "randAmericanFootballTeam": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAmericanFootballTeam"
                },
                "randAmount": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAmount"
                },
                "randAnimal": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAnimal"
                },
                "randAnimalType": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAnimalType"
                },
                "randArn": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randArn"
                },
                "randAvatar": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAvatar"
                },
                "randAwsRegion": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAwsRegion"
                },
                "randAwsRequestId": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAwsRequestId"
                },
                "randAwsService": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randAwsService"
                },
                "randBaseballTeam": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randBaseballTeam"
                },
                "randBasketballTeam": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randBasketballTeam"
                },
                "randBear": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randBear"
                },
                "randBetweenDate": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randBetweenDate"
                },
                "randBic": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randBic"
                },
                "randBinary": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randBinary"
                },
                "randBird": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randBird"
                },
                "randBitcoinAddress": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randBitcoinAddress"
                },
                "randBook": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randBook"
                },
                "randBoolean": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randBoolean"
                },
                "randBrand": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randBrand"
                },
                "randBrowser": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randBrowser"
                },
                "randCardinalDirection": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCardinalDirection"
                },
                "randCat": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCat"
                },
                "randCatchPhrase": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCatchPhrase"
                },
                "randCetacean": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCetacean"
                },
                "randChanceBoolean": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randChanceBoolean"
                },
                "randCity": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCity"
                },
                "randClothingSize": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randClothingSize"
                },
                "randCodeSnippet": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCodeSnippet"
                },
                "randColor": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randColor"
                },
                "randCompanyName": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCompanyName"
                },
                "randCountry": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCountry"
                },
                "randCountryCode": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCountryCode"
                },
                "randCounty": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCounty"
                },
                "randCow": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCow"
                },
                "randCreditCard": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCreditCard"
                },
                "randCreditCardBrand": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCreditCardBrand"
                },
                "randCreditCardCVV": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCreditCardCVV"
                },
                "randCreditCardNumber": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCreditCardNumber"
                },
                "randCrocodilia": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCrocodilia"
                },
                "randCurrencyCode": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCurrencyCode"
                },
                "randCurrencyName": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCurrencyName"
                },
                "randCurrencySymbol": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randCurrencySymbol"
                },
                "randDatabase": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randDatabase"
                },
                "randDatabaseCollation": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randDatabaseCollation"
                },
                "randDatabaseColumn": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randDatabaseColumn"
                },
                "randDatabaseEngine": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randDatabaseEngine"
                },
                "randDatabaseType": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randDatabaseType"
                },
                "randDepartment": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randDepartment"
                },
                "randDirection": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randDirection"
                },
                "randDirectoryPath": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randDirectoryPath"
                },
                "randDog": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randDog"
                },
                "randDomainName": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randDomainName"
                },
                "randDomainSuffix": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randDomainSuffix"
                },
                "randDrinks": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randDrinks"
                },
                "randEmail": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randEmail"
                },
                "randEmailProvider": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randEmailProvider"
                },
                "randEmoji": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randEmoji"
                },
                "randEthereumAddress": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randEthereumAddress"
                },
                "randFileExt": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randFileExt"
                },
                "randFileName": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randFileName"
                },
                "randFilePath": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randFilePath"
                },
                "randFileType": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randFileType"
                },
                "randFirstName": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randFirstName"
                },
                "randFish": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randFish"
                },
                "randFlightDetails": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randFlightDetails"
                },
                "randFlightNumber": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randFlightNumber"
                },
                "randFloat": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randFloat"
                },
                "randFontFamily": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randFontFamily"
                },
                "randFontSize": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randFontSize"
                },
                "randFood": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randFood"
                },
                "randFootballTeam": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randFootballTeam"
                },
                "randFrequency": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randFrequency"
                },
                "randFullAddress": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randFullAddress"
                },
                "randFullName": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randFullName"
                },
                "randFutureDate": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randFutureDate"
                },
                "randGender": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randGender"
                },
                "randGitBranch": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randGitBranch"
                },
                "randGitCommitEntry": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randGitCommitEntry"
                },
                "randGitCommitMessage": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randGitCommitMessage"
                },
                "randGitCommitSha": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randGitCommitSha"
                },
                "randGitShortSha": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randGitShortSha"
                },
                "randHex": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randHex"
                },
                "randHexaDecimal": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randHexaDecimal"
                },
                "randHorse": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randHorse"
                },
                "randHsl": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randHsl"
                },
                "randHttpMethod": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randHttpMethod"
                },
                "randIban": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randIban"
                },
                "randIceHockeyTeam": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randIceHockeyTeam"
                },
                "randImg": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randImg"
                },
                "randIntegration": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randIntegration"
                },
                "randIp": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randIp"
                },
                "randIpv6": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randIpv6"
                },
                "randJSON": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randJSON"
                },
                "randJobArea": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randJobArea"
                },
                "randJobDescriptor": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randJobDescriptor"
                },
                "randJobTitle": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randJobTitle"
                },
                "randJobType": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randJobType"
                },
                "randLanguage": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randLanguage"
                },
                "randLastName": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randLastName"
                },
                "randLatitude": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randLatitude"
                },
                "randLine": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randLine"
                },
                "randLines": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randLines"
                },
                "randLion": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randLion"
                },
                "randLocale": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randLocale"
                },
                "randLongitude": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randLongitude"
                },
                "randMac": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randMac"
                },
                "randMask": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randMask"
                },
                "randMimeType": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randMimeType"
                },
                "randMonth": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randMonth"
                },
                "randMotorcycleManufacturer": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randMotorcycleManufacturer"
                },
                "randMotorcylceManufacturer": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randMotorcylceManufacturer"
                },
                "randMovie": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randMovie"
                },
                "randMovieCharacter": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randMovieCharacter"
                },
                "randMusicGenre": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randMusicGenre"
                },
                "randNearbyGPSCoordinate": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randNearbyGPSCoordinate"
                },
                "randNumber": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randNumber"
                },
                "randOAuthProvider": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randOAuthProvider"
                },
                "randOctal": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randOctal"
                },
                "randOrdinalDirection": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randOrdinalDirection"
                },
                "randParagraph": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randParagraph"
                },
                "randPassword": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randPassword"
                },
                "randPastDate": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randPastDate"
                },
                "randPermission": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randPermission"
                },
                "randPersonTitle": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randPersonTitle"
                },
                "randPhoneNumber": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randPhoneNumber"
                },
                "randPhrase": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randPhrase"
                },
                "randPort": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randPort"
                },
                "randPost": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randPost"
                },
                "randPriority": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randPriority"
                },
                "randProduct": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randProduct"
                },
                "randProductAdjective": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randProductAdjective"
                },
                "randProductCategory": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randProductCategory"
                },
                "randProductDescription": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randProductDescription"
                },
                "randProductMaterial": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randProductMaterial"
                },
                "randProductName": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randProductName"
                },
                "randProgrammingLanguage": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randProgrammingLanguage"
                },
                "randPronoun": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randPronoun"
                },
                "randProtocol": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randProtocol"
                },
                "randQuote": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randQuote"
                },
                "randRabbit": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randRabbit"
                },
                "randRecentDate": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randRecentDate"
                },
                "randRgb": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randRgb"
                },
                "randRole": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randRole"
                },
                "randRoutingNumber": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randRoutingNumber"
                },
                "randSeatNumber": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSeatNumber"
                },
                "randSemver": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSemver"
                },
                "randSentence": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSentence"
                },
                "randSequence": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSequence"
                },
                "randShape": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randShape"
                },
                "randSinger": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSinger"
                },
                "randSkill": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSkill"
                },
                "randSlug": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSlug"
                },
                "randSnake": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSnake"
                },
                "randSocial": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSocial"
                },
                "randSong": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSong"
                },
                "randSoonDate": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSoonDate"
                },
                "randSports": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSports"
                },
                "randSportsTeam": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSportsTeam"
                },
                "randState": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randState"
                },
                "randStateAbbr": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randStateAbbr"
                },
                "randStatus": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randStatus"
                },
                "randStreetAddress": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randStreetAddress"
                },
                "randStreetName": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randStreetName"
                },
                "randSubscriptionPlan": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSubscriptionPlan"
                },
                "randSuperhero": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSuperhero"
                },
                "randSuperheroName": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSuperheroName"
                },
                "randSvg": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSvg"
                },
                "randSwift": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randSwift"
                },
                "randText": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randText"
                },
                "randTextRange": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randTextRange"
                },
                "randTimeZone": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randTimeZone"
                },
                "randTodo": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randTodo"
                },
                "randTransactionType": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randTransactionType"
                },
                "randUrl": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randUrl"
                },
                "randUser": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randUser"
                },
                "randUserAgent": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randUserAgent"
                },
                "randUserName": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randUserName"
                },
                "randUuid": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randUuid"
                },
                "randVehicle": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randVehicle"
                },
                "randVehicleFuel": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randVehicleFuel"
                },
                "randVehicleManufacturer": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randVehicleManufacturer"
                },
                "randVehicleModel": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randVehicleModel"
                },
                "randVehicleType": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randVehicleType"
                },
                "randVerb": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randVerb"
                },
                "randWeekday": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randWeekday"
                },
                "randWord": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randWord"
                },
                "randZipCode": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: randZipCode"
                },
                "random": {
                  "type": "object",
                  "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                  "properties": {},
                  "additionalProperties": false,
                  "title": "Falso Function: random"
                }
              },
              "additionalProperties": false,
              "title": "Fake Data Plugin"
            },
            "slack": {
              "type": "object",
              "properties": {
                "webhookUrl": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string"
                    }
                  ]
                }
              },
              "additionalProperties": false,
              "title": "Slack Plugin"
            }
          },
          "additionalProperties": true,
          "title": "Plugins"
        },
        "engines": {
          "type": "object",
          "description": "Configuration for specific engines used",
          "properties": {
            "playwright": {
              "type": "object",
              "properties": {
                "aggregateByName": {
                  "description": "Aggregate Artillery metrics by test scenario name.\nhttps://www.artillery.io/docs/reference/engines/playwright#aggregate-metrics-by-scenario-name",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Aggregate by name"
                },
                "defaultTimeout": {
                  "description": "Default maximum time (in seconds) for all Playwright methods accepting the `timeout` option.\nhttps://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-timeout",
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Default timeout"
                },
                "defaultNavigationTimeout": {
                  "description": "Default maximum navigation time (in seconds) for Playwright navigation methods, like `page.goto()`.\nhttps://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-navigation-timeout",
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Default navigation timeout"
                },
                "testIdAttribute": {
                  "type": "string",
                  "description": "When set, changes the attribute used by locator `page.getByTestId` in Playwright. \n https://playwright.dev/docs/api/class-framelocator#frame-locator-get-by-test-id",
                  "title": "Test ID Attribute"
                },
                "extendedMetrics": {
                  "description": "If enabled, Artillery will collect additional metrics from Playwright.\nCheck more information here: https://www.artillery.io/docs/reference/engines/playwright#extended-metrics",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Playwright Extended Metrics"
                },
                "showAllPageMetrics": {
                  "description": "If enabled, Artillery will collect Web Vitals for all pages, rather than just ones that start with target URL.\nCheck more information here: https://www.artillery.io/docs/reference/engines/playwright#show-web-vital-metrics-for-all-pages",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Web Vitals on all Pages"
                },
                "launchOptions": {
                  "type": "object",
                  "description": "Arguments for the `browser.launch()` call in Playwright.\nhttps://playwright.dev/docs/api/class-browsertype#browser-type-launch",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Playwright launch options"
                },
                "contextOptions": {
                  "type": "object",
                  "description": "Arguments for the `browser.newContext()` call in Playwright.\nhttps://playwright.dev/docs/api/class-browser#browser-new-context",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Playwright context options"
                },
                "useSeparateBrowserPerVU": {
                  "description": "If enabled, a new browser process will be created for each VU. By default Artillery uses new browser contexts for new VUs.\nWARNING: Using this option is discouraged as it will increase CPU/memory usage of your tests.\nhttps://www.artillery.io/docs/reference/engines/playwright#configuration",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Use a separate browser process for each VU"
                }
              },
              "additionalProperties": true
            }
          },
          "additionalProperties": true,
          "title": "Engines"
        },
        "ensure": {
          "type": "object",
          "properties": {
            "thresholds": {
              "type": "array",
              "description": "Ensure that a metric is under some threshold value.\nhttps://www.artillery.io/docs/reference/extensions/ensure#threshold-checks",
              "items": {
                "type": [
                  "array",
                  "boolean",
                  "number",
                  "object",
                  "string",
                  "null"
                ]
              },
              "title": "Threshold Checks"
            },
            "conditions": {
              "type": "array",
              "description": "Set more complex expressions for additional checks.\nhttps://www.artillery.io/docs/reference/extensions/ensure#advanced-conditional-checks",
              "items": {
                "type": "object",
                "properties": {
                  "expression": {
                    "type": "string",
                    "title": "Conditional Expression"
                  },
                  "strict": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ],
                    "title": "Strict?"
                  }
                },
                "additionalProperties": false
              },
              "title": "Conditional Checks"
            },
            "min": {
              "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "title": "Min"
            },
            "max": {
              "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "title": "Max"
            },
            "median": {
              "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "title": "Median"
            },
            "p95": {
              "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "title": "P95"
            },
            "p99": {
              "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "title": "P99"
            },
            "maxErrorRate": {
              "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "title": "Max Error Rate"
            }
          },
          "additionalProperties": false,
          "title": "Ensure Plugin"
        },
        "apdex": {
          "type": "object",
          "properties": {
            "threshold": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ]
            }
          },
          "additionalProperties": false,
          "title": "Apdex Plugin"
        },
        "environments": {
          "type": "object",
          "description": "Replace /.*/ with the name of an environment to run your load test against different configs:\nhttps://www.artillery.io/docs/reference/test-script#environments---config-profiles",
          "properties": {
            "/.*/": {
              "type": "object",
              "properties": {
                "target": {
                  "type": "string",
                  "examples": [
                    "https://example.com",
                    "ws://127.0.0.1"
                  ],
                  "description": "Endpoint of the system under test, such as a hostname, IP address or a URI.\nIn Playwright tests, this will be used as the baseURL by default.\n\nhttps://www.artillery.io/docs/reference/test-script#target---target-service",
                  "title": "Target"
                },
                "phases": {
                  "type": "array",
                  "description": "A load phase defines how Artillery generates new virtual users (VUs) in a specified time period.\nhttps://www.artillery.io/docs/reference/test-script#phases---load-phases",
                  "items": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "title": "Test Phase Name"
                          },
                          "duration": {
                            "description": "Test phase duration (in seconds).\nCan also be any valid human-readable duration: https://www.npmjs.com/package/ms .",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Test Phase Duration"
                          },
                          "maxVusers": {
                            "description": "Cap the number of concurrent virtual users at any given time.",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Maximum virtual users"
                          },
                          "arrivalRate": {
                            "description": "Constant arrival rate - i.e. the number of virtual users generated every second.\nhttps://www.artillery.io/docs/reference/test-script#constant-arrival-rate",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Arrival Rate"
                          },
                          "rampTo": {
                            "description": "Ramp from initial arrivalRate to this value over time period.\nhttps://www.artillery.io/docs/reference/test-script#ramp-up-rate",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Ramp up rate"
                          }
                        },
                        "required": [
                          "duration"
                        ],
                        "additionalProperties": false,
                        "anyOf": [
                          {
                            "required": [
                              "arrivalRate"
                            ]
                          },
                          {
                            "required": [
                              "rampTo"
                            ]
                          }
                        ],
                        "title": "Arrival Rate Phase"
                      },
                      {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "title": "Test Phase Name"
                          },
                          "duration": {
                            "description": "Test phase duration (in seconds).\nCan also be any valid human-readable duration: https://www.npmjs.com/package/ms .",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Test Phase Duration"
                          },
                          "maxVusers": {
                            "description": "Cap the number of concurrent virtual users at any given time.",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Maximum virtual users"
                          },
                          "arrivalCount": {
                            "description": "Fixed number of virtual users over that time period.\nhttps://www.artillery.io/docs/reference/test-script#fixed-number-of-arrivals-per-second",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Arrival Count"
                          }
                        },
                        "required": [
                          "duration",
                          "arrivalCount"
                        ],
                        "additionalProperties": false,
                        "title": "Arrival Count Phase"
                      },
                      {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "title": "Test Phase Name"
                          },
                          "pause": {
                            "description": "Pause the test phase execution for given duration (in seconds).\nCan also be any valid human-readable duration: https://www.npmjs.com/package/ms.",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Pause"
                          }
                        },
                        "required": [
                          "pause"
                        ],
                        "additionalProperties": false,
                        "title": "Pause Phase"
                      }
                    ],
                    "title": "Test Phase"
                  },
                  "title": "Phases"
                },
                "http": {
                  "type": "object",
                  "properties": {
                    "timeout": {
                      "description": "Increase or decrease request timeout",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "Request Timeout"
                    },
                    "maxSockets": {
                      "description": "Maximum amount of TCP connections per virtual user.\nhttps://www.artillery.io/docs/reference/engines/http#max-sockets-per-virtual-user",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "Maximum Sockets"
                    },
                    "extendedMetrics": {
                      "description": "Enable tracking of additional HTTP metrics.\nhttps://www.artillery.io/docs/reference/engines/http#additional-performance-metrics",
                      "anyOf": [
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "Enable Extended Metrics"
                    },
                    "defaults": {
                      "type": "object",
                      "properties": {
                        "headers": {
                          "type": "object",
                          "description": "Default headers to be used in all requests. Replace *. with your header name, and set string value.\nhttps://www.artillery.io/docs/reference/engines/http#default-configuration",
                          "properties": {
                            "/.*/": {
                              "type": "string",
                              "properties": {},
                              "required": [],
                              "additionalProperties": true
                            }
                          },
                          "additionalProperties": true,
                          "patternProperties": {
                            ".*": {
                              "type": "string",
                              "properties": {},
                              "required": [],
                              "additionalProperties": true
                            }
                          },
                          "title": "Default Headers"
                        },
                        "cookie": {
                          "type": "object",
                          "description": "Default cookies to be used in all requests. Replace *. with your cookie name, and set string value.",
                          "properties": {
                            "/.*/": {
                              "type": "string",
                              "properties": {},
                              "required": [],
                              "additionalProperties": true
                            }
                          },
                          "additionalProperties": true,
                          "patternProperties": {
                            ".*": {
                              "type": "string",
                              "properties": {},
                              "required": [],
                              "additionalProperties": true
                            }
                          },
                          "title": "Default Cookies"
                        },
                        "strictCapture": {
                          "description": "Whether to turn on strict capture by default for all captures.\nhttps://www.artillery.io/docs/reference/engines/http#turn-off-strict-capture",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Strict capture"
                        },
                        "think": {
                          "type": "object",
                          "properties": {
                            "jitter": {
                              "description": "Sets jitter to simulate real-world random variance into think time pauses. Accepts both number and percentage.",
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "additionalProperties": true,
                          "title": "Think Options"
                        }
                      },
                      "additionalProperties": true,
                      "title": "Configure Default Settings for all requests"
                    }
                  },
                  "additionalProperties": true,
                  "title": "HTTP Configuration"
                },
                "ws": {
                  "type": "object",
                  "properties": {
                    "subprotocols": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "json",
                          "soap",
                          "wamp",
                          "xmpp"
                        ]
                      },
                      "title": "Websocket sub-protocols"
                    },
                    "headers": {
                      "type": "object",
                      "properties": {
                        "/.*/": {
                          "type": "string",
                          "properties": {},
                          "required": [],
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": true,
                      "patternProperties": {
                        ".*": {
                          "type": "string",
                          "properties": {},
                          "required": [],
                          "additionalProperties": true
                        }
                      },
                      "title": "Headers"
                    },
                    "proxy": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "title": "URL"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "additionalProperties": true,
                      "title": "Proxy"
                    }
                  },
                  "additionalProperties": true,
                  "title": "Websocket Configuration"
                },
                "socketio": {
                  "type": "object",
                  "description": "For more information on supported options, visit https://socket.io/docs/v4/client-api/",
                  "properties": {
                    "query": {
                      "description": "Query parameters can be specified as a string or dictionary.",
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "/.*/": {
                              "type": "string",
                              "properties": {},
                              "required": [],
                              "additionalProperties": true
                            }
                          },
                          "additionalProperties": true,
                          "patternProperties": {
                            ".*": {
                              "type": "string",
                              "properties": {},
                              "required": [],
                              "additionalProperties": true
                            }
                          }
                        }
                      ],
                      "title": "Query"
                    },
                    "path": {
                      "type": "string"
                    },
                    "extraHeaders": {
                      "type": "object",
                      "description": "Extra headers may be passed with this option. \nThe extraHeaders option only works if the default polling transport is used. When using other transports, extra headers won't be taken into account by the server.",
                      "properties": {
                        "/.*/": {
                          "type": "string",
                          "properties": {},
                          "required": [],
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": true,
                      "patternProperties": {
                        ".*": {
                          "type": "string",
                          "properties": {},
                          "required": [],
                          "additionalProperties": true
                        }
                      },
                      "title": "Extra Headers"
                    },
                    "transports": {
                      "type": "array",
                      "description": "You can skip long-polling by using the transports option to specify WebSocket transport.",
                      "items": {
                        "const": "websocket"
                      },
                      "title": "Websocket Transports only"
                    }
                  },
                  "additionalProperties": true,
                  "title": "SocketIo Configuration"
                },
                "processor": {
                  "type": "string",
                  "description": "Path to a CommonJS (.js), ESM (.mjs) or Typescript (.ts) module to load for this test run.\nhttps://www.artillery.io/docs/reference/test-script#processor---custom-js-code",
                  "title": "Processor Function Path"
                },
                "variables": {
                  "type": "object",
                  "description": "Map of variables to expose to the test run.",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Variables"
                },
                "payload": {
                  "description": "Load data from CSV to be used during the test run:\nhttps://www.artillery.io/docs/reference/test-script#payload---loading-data-from-csv-files",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "path": {
                          "type": "string",
                          "title": "CSV Path"
                        },
                        "fields": {
                          "type": "array",
                          "description": "List of names of fields to be used in the test to load the data",
                          "items": {
                            "type": "string"
                          },
                          "title": "CSV Fields"
                        },
                        "order": {
                          "description": "Controls how the CSV rows are selected for each virtual user.",
                          "anyOf": [
                            {
                              "const": "random"
                            },
                            {
                              "const": "sequence"
                            }
                          ],
                          "title": "Order"
                        },
                        "skipHeader": {
                          "description": "Set to `true` to make Artillery skip the first row in the CSV file (typically the header row)",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Skip Header?"
                        },
                        "delimiter": {
                          "type": "string",
                          "description": "Custom delimiter character to use in the payload.",
                          "title": "Delimiter"
                        },
                        "cast": {
                          "description": "Controls whether Artillery converts fields to native types (e.g. numbers or booleans). To keep those fields as strings, set this option to `false`.",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Cast?"
                        },
                        "skipEmptyLines": {
                          "description": "Controls whether Artillery should skip empty lines in the payload.",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Skip empty lines?"
                        },
                        "loadAll": {
                          "description": "Set loadAll to true to provide all rows to each VU",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Load all data"
                        },
                        "name": {
                          "type": "string",
                          "description": "Name of loadAll data",
                          "title": "Data Name"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "path": {
                            "type": "string",
                            "title": "CSV Path"
                          },
                          "fields": {
                            "type": "array",
                            "description": "List of names of fields to be used in the test to load the data",
                            "items": {
                              "type": "string"
                            },
                            "title": "CSV Fields"
                          },
                          "order": {
                            "description": "Controls how the CSV rows are selected for each virtual user.",
                            "anyOf": [
                              {
                                "const": "random"
                              },
                              {
                                "const": "sequence"
                              }
                            ],
                            "title": "Order"
                          },
                          "skipHeader": {
                            "description": "Set to `true` to make Artillery skip the first row in the CSV file (typically the header row)",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Skip Header?"
                          },
                          "delimiter": {
                            "type": "string",
                            "description": "Custom delimiter character to use in the payload.",
                            "title": "Delimiter"
                          },
                          "cast": {
                            "description": "Controls whether Artillery converts fields to native types (e.g. numbers or booleans). To keep those fields as strings, set this option to `false`.",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Cast?"
                          },
                          "skipEmptyLines": {
                            "description": "Controls whether Artillery should skip empty lines in the payload.",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Skip empty lines?"
                          },
                          "loadAll": {
                            "description": "Set loadAll to true to provide all rows to each VU",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Load all data"
                          },
                          "name": {
                            "type": "string",
                            "description": "Name of loadAll data",
                            "title": "Data Name"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "CSV Payload"
                },
                "tls": {
                  "type": "object",
                  "properties": {
                    "rejectUnauthorized": {
                      "type": "boolean",
                      "title": "Set this setting to `false` to tell Artillery to accept self-signed TLS certificates."
                    }
                  },
                  "additionalProperties": true,
                  "title": "TLS Settings"
                },
                "bundling": {
                  "type": "object",
                  "description": "Configuration for bundling the test script and its dependencies",
                  "properties": {
                    "external": {
                      "type": "array",
                      "description": "Can be used when using Typescript (.ts) processors. List npm modules to prevent them from being bundled. Use in case there are issues with bundling certain packages.\nhttps://www.artillery.io/docs/reference/test-script#preventing-bundling-of-typescript-packages",
                      "items": {
                        "type": "string"
                      },
                      "title": "External Packages"
                    }
                  },
                  "additionalProperties": true,
                  "title": "Bundling"
                },
                "plugins": {
                  "type": "object",
                  "description": "List of Artillery plugins to use (official or third-party) and their configuration",
                  "properties": {
                    "expect": {
                      "type": "object",
                      "properties": {
                        "outputFormat": {
                          "type": "string",
                          "enum": [
                            "pretty",
                            "json",
                            "prettyError",
                            "silent"
                          ],
                          "title": "Output Format"
                        },
                        "formatter": {
                          "type": "string",
                          "description": "Please use the `outputFormat` option instead.",
                          "enum": [
                            "pretty",
                            "json",
                            "prettyError",
                            "silent"
                          ],
                          "title": "(Deprecated) Formatter"
                        },
                        "reportFailuresAsErrors": {
                          "description": "Reports failures from expect plugin as errors in Artillery Report",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Report Failures as Errors"
                        },
                        "useOnlyRequestNames": {
                          "description": "Use request name instead of the URL path when logging requests in console and report",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Use Only Request Names"
                        },
                        "expectDefault200": {
                          "description": "Sets a 200 OK status code expectation for all requests.",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Expect 200 by default"
                        }
                      },
                      "additionalProperties": false,
                      "title": "Expect Plugin"
                    },
                    "ensure": {
                      "type": "object",
                      "properties": {
                        "thresholds": {
                          "type": "array",
                          "description": "Ensure that a metric is under some threshold value.\nhttps://www.artillery.io/docs/reference/extensions/ensure#threshold-checks",
                          "items": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ]
                          },
                          "title": "Threshold Checks"
                        },
                        "conditions": {
                          "type": "array",
                          "description": "Set more complex expressions for additional checks.\nhttps://www.artillery.io/docs/reference/extensions/ensure#advanced-conditional-checks",
                          "items": {
                            "type": "object",
                            "properties": {
                              "expression": {
                                "type": "string",
                                "title": "Conditional Expression"
                              },
                              "strict": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "additionalProperties": false
                          },
                          "title": "Conditional Checks"
                        },
                        "min": {
                          "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Min"
                        },
                        "max": {
                          "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Max"
                        },
                        "median": {
                          "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Median"
                        },
                        "p95": {
                          "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "P95"
                        },
                        "p99": {
                          "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "P99"
                        },
                        "maxErrorRate": {
                          "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Max Error Rate"
                        }
                      },
                      "additionalProperties": false,
                      "title": "Ensure Plugin"
                    },
                    "apdex": {
                      "type": "object",
                      "properties": {
                        "threshold": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false,
                      "title": "Apdex Plugin"
                    },
                    "metrics-by-endpoint": {
                      "type": "object",
                      "description": "Visualise metrics per endpoint visited during your HTTP test. Docs: https://www.artillery.io/docs/reference/extensions/metrics-by-endpoint\nNote: this plugin is enabled by default, and will display per endpoint metrics in the report. If you want to see them in the console, enable it manually.",
                      "properties": {
                        "useOnlyRequestNames": {
                          "description": "Use request name property as endpoint name instead of the full URL. Recommended for dynamic URLs.",
                          "default": false,
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Use Only Request Names"
                        },
                        "stripQueryString": {
                          "description": "Strip query strings from the endpoint name automatically.",
                          "default": false,
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Strip Query String"
                        },
                        "ignoreUnnamedRequests": {
                          "description": "Ignore per-endpoint metrics for requests without a name property set.",
                          "default": false,
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Ignore Unnamed Requests"
                        },
                        "metricsNamespace": {
                          "type": "string",
                          "description": "Custom prefix to use for metrics published by this plugin.",
                          "default": "plugins.metrics-by-endpoint",
                          "title": "Metrics Namespace"
                        }
                      },
                      "additionalProperties": false,
                      "title": "Metrics by Endpoint Plugin"
                    },
                    "publish-metrics": {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "cloudwatch"
                              },
                              "region": {
                                "type": "string"
                              },
                              "namespace": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "dimensions": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "value": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "name",
                                    "value"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "includeOnly": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "excluded": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "sendOnlyTraces": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "traces": {
                                "type": "object",
                                "properties": {
                                  "serviceName": {
                                    "type": "string"
                                  },
                                  "sampleRate": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "useRequestNames": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "annotations": {
                                    "type": "object",
                                    "properties": {},
                                    "additionalProperties": true
                                  },
                                  "smartSampling": {
                                    "type": "object",
                                    "properties": {
                                      "thresholds": {
                                        "type": "object",
                                        "properties": {
                                          "firstByte": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "total": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        },
                                        "additionalProperties": false
                                      }
                                    },
                                    "additionalProperties": false
                                  },
                                  "replaceSpanNameRegex": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "pattern": {
                                          "type": "string"
                                        },
                                        "as": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "pattern",
                                        "as"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "additionalProperties": false,
                            "title": "Cloudwatch Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "datadog"
                              },
                              "apiKey": {
                                "type": "string"
                              },
                              "appKey": {
                                "type": "string"
                              },
                              "apiHost": {
                                "type": "string"
                              },
                              "prefix": {
                                "type": "string"
                              },
                              "tags": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "includeOnly": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "excluded": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "event": {
                                "type": "object",
                                "properties": {
                                  "title": {
                                    "type": "string"
                                  },
                                  "text": {
                                    "type": "string"
                                  },
                                  "priority": {
                                    "type": "string",
                                    "enum": [
                                      "normal",
                                      "low"
                                    ]
                                  },
                                  "tags": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "alertType": {
                                    "type": "string",
                                    "enum": [
                                      "error",
                                      "warning",
                                      "info",
                                      "success"
                                    ]
                                  },
                                  "send": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  }
                                },
                                "additionalProperties": false
                              },
                              "sendOnlyTraces": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "traces": {
                                "type": "object",
                                "properties": {
                                  "serviceName": {
                                    "type": "string"
                                  },
                                  "sampleRate": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "useRequestNames": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "tags": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "smartSampling": {
                                    "type": "object",
                                    "properties": {
                                      "thresholds": {
                                        "type": "object",
                                        "properties": {
                                          "firstByte": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "total": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        },
                                        "additionalProperties": false
                                      }
                                    },
                                    "additionalProperties": false
                                  },
                                  "replaceSpanNameRegex": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "pattern": {
                                          "type": "string"
                                        },
                                        "as": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "pattern",
                                        "as"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "additionalProperties": false,
                            "title": "Datadog Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "newrelic"
                              },
                              "licenseKey": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "prefix": {
                                "type": "string"
                              },
                              "attributes": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "includeOnly": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "excluded": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "event": {
                                "type": "object",
                                "properties": {
                                  "accountId": {
                                    "type": "string"
                                  },
                                  "eventType": {
                                    "type": "string"
                                  },
                                  "attributes": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "send": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "accountId"
                                ],
                                "additionalProperties": false
                              },
                              "sendOnlyTraces": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "traces": {
                                "type": "object",
                                "properties": {
                                  "serviceName": {
                                    "type": "string"
                                  },
                                  "sampleRate": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "useRequestNames": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "attributes": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "smartSampling": {
                                    "type": "object",
                                    "properties": {
                                      "thresholds": {
                                        "type": "object",
                                        "properties": {
                                          "firstByte": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "total": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        },
                                        "additionalProperties": false
                                      }
                                    },
                                    "additionalProperties": false
                                  },
                                  "replaceSpanNameRegex": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "pattern": {
                                          "type": "string"
                                        },
                                        "as": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "pattern",
                                        "as"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "type",
                              "licenseKey"
                            ],
                            "additionalProperties": false,
                            "title": "New Relic Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "splunk"
                              },
                              "accessToken": {
                                "type": "string"
                              },
                              "realm": {
                                "type": "string"
                              },
                              "prefix": {
                                "type": "string"
                              },
                              "dimensions": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "includeOnly": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "excluded": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "event": {
                                "type": "object",
                                "properties": {
                                  "eventType": {
                                    "type": "string"
                                  },
                                  "dimensions": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "properties": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "send": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "type",
                              "accessToken"
                            ],
                            "additionalProperties": false,
                            "title": "Splunk Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "prometheus"
                              },
                              "pushgateway": {
                                "type": "string"
                              },
                              "tags": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "type",
                              "pushgateway"
                            ],
                            "additionalProperties": false,
                            "title": "Prometheus (Pushgateway) Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "dynatrace"
                              },
                              "apiToken": {
                                "type": "string"
                              },
                              "envUrl": {
                                "type": "string"
                              },
                              "prefix": {
                                "type": "string"
                              },
                              "dimensions": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "includeOnly": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "excluded": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "event": {
                                "type": "object",
                                "properties": {
                                  "eventType": {
                                    "type": "string"
                                  },
                                  "title": {
                                    "type": "string"
                                  },
                                  "properties": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "entitySelector": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "send": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  }
                                },
                                "additionalProperties": false
                              },
                              "sendOnlyTraces": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "traces": {
                                "type": "object",
                                "properties": {
                                  "serviceName": {
                                    "type": "string"
                                  },
                                  "sampleRate": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "useRequestNames": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "attributes": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "smartSampling": {
                                    "type": "object",
                                    "properties": {
                                      "thresholds": {
                                        "type": "object",
                                        "properties": {
                                          "firstByte": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "total": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        },
                                        "additionalProperties": false
                                      }
                                    },
                                    "additionalProperties": false
                                  },
                                  "replaceSpanNameRegex": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "pattern": {
                                          "type": "string"
                                        },
                                        "as": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "pattern",
                                        "as"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "type",
                              "apiToken",
                              "envUrl"
                            ],
                            "additionalProperties": false,
                            "title": "Dynatrace Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "honeycomb"
                              },
                              "apiKey": {
                                "type": "string"
                              },
                              "writeKey": {
                                "type": "string"
                              },
                              "dataset": {
                                "type": "string"
                              },
                              "sampleRate": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "enabled": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "useRequestNames": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "attributes": {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": true
                              },
                              "smartSampling": {
                                "type": "object",
                                "properties": {
                                  "thresholds": {
                                    "type": "object",
                                    "properties": {
                                      "firstByte": {
                                        "anyOf": [
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ]
                                      },
                                      "total": {
                                        "anyOf": [
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ]
                                      }
                                    },
                                    "additionalProperties": false
                                  }
                                },
                                "additionalProperties": false
                              },
                              "replaceSpanNameRegex": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "pattern": {
                                      "type": "string"
                                    },
                                    "as": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "pattern",
                                    "as"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "additionalProperties": false,
                            "title": "Honeycomb (Tracing) Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "lightstep"
                              },
                              "accessToken": {
                                "type": "string"
                              },
                              "componentName": {
                                "type": "string"
                              },
                              "tags": {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              "enabled": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "type",
                              "accessToken",
                              "componentName"
                            ],
                            "additionalProperties": false,
                            "title": "Lightstep (Tracing) Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "mixpanel"
                              },
                              "projectToken": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "type",
                              "projectToken"
                            ],
                            "additionalProperties": false,
                            "title": "Mixpanel Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "statsd"
                              },
                              "host": {
                                "type": "string"
                              },
                              "port": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "prefix": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "additionalProperties": false,
                            "title": "StatsD Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "influxdb-statsd"
                              },
                              "prefix": {
                                "type": "string"
                              },
                              "tags": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "event": {
                                "type": "object",
                                "properties": {
                                  "priority": {
                                    "type": "string",
                                    "enum": [
                                      "normal",
                                      "low"
                                    ]
                                  },
                                  "tags": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "additionalProperties": false,
                            "title": "InfluxDB/Telegraf Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "open-telemetry"
                              },
                              "serviceName": {
                                "type": "string"
                              },
                              "metrics": {
                                "type": "object",
                                "properties": {
                                  "endpoint": {
                                    "type": "string"
                                  },
                                  "headers": {
                                    "type": "object",
                                    "properties": {},
                                    "additionalProperties": true
                                  },
                                  "exporter": {
                                    "type": "string",
                                    "default": "otlp-http",
                                    "enum": [
                                      "otlp-http",
                                      "otlp-proto",
                                      "otlp-grpc"
                                    ]
                                  },
                                  "includeOnly": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "excluded": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "attributes": {
                                    "type": "object",
                                    "properties": {},
                                    "additionalProperties": true
                                  }
                                },
                                "additionalProperties": false
                              },
                              "traces": {
                                "type": "object",
                                "properties": {
                                  "endpoint": {
                                    "type": "string"
                                  },
                                  "headers": {
                                    "type": "object",
                                    "properties": {},
                                    "additionalProperties": true
                                  },
                                  "exporter": {
                                    "type": "string",
                                    "default": "otlp-http",
                                    "enum": [
                                      "otlp-http",
                                      "otlp-proto",
                                      "otlp-grpc",
                                      "zipkin"
                                    ]
                                  },
                                  "sampleRate": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "useRequestNames": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "attributes": {
                                    "type": "object",
                                    "properties": {},
                                    "additionalProperties": true
                                  },
                                  "smartSampling": {
                                    "type": "object",
                                    "properties": {
                                      "thresholds": {
                                        "type": "object",
                                        "properties": {
                                          "firstByte": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "total": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        },
                                        "additionalProperties": false
                                      }
                                    },
                                    "additionalProperties": false
                                  },
                                  "replaceSpanNameRegex": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "pattern": {
                                          "type": "string"
                                        },
                                        "as": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "pattern",
                                        "as"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "additionalProperties": false,
                            "title": "OpenTelemetry Reporter"
                          }
                        ]
                      },
                      "title": "Publish Metrics Plugin"
                    },
                    "fake-data": {
                      "type": "object",
                      "description": "This plugin adds access to random realistic test data generation using falso. You can configure the parameters of each function in the config. \nFor more information, check our documentation: https://www.artillery.io/docs/reference/extensions/fake-data",
                      "properties": {
                        "randAbbreviation": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAbbreviation"
                        },
                        "randAbn": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAbn"
                        },
                        "randAccessory": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAccessory"
                        },
                        "randAccount": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAccount"
                        },
                        "randAddress": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAddress"
                        },
                        "randAggregation": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAggregation"
                        },
                        "randAirline": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAirline"
                        },
                        "randAirport": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAirport"
                        },
                        "randAirportCode": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAirportCode"
                        },
                        "randAirportName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAirportName"
                        },
                        "randAlpha": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAlpha"
                        },
                        "randAlphaNumeric": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAlphaNumeric"
                        },
                        "randAmericanFootballTeam": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAmericanFootballTeam"
                        },
                        "randAmount": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAmount"
                        },
                        "randAnimal": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAnimal"
                        },
                        "randAnimalType": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAnimalType"
                        },
                        "randArn": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randArn"
                        },
                        "randAvatar": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAvatar"
                        },
                        "randAwsRegion": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAwsRegion"
                        },
                        "randAwsRequestId": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAwsRequestId"
                        },
                        "randAwsService": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAwsService"
                        },
                        "randBaseballTeam": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBaseballTeam"
                        },
                        "randBasketballTeam": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBasketballTeam"
                        },
                        "randBear": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBear"
                        },
                        "randBetweenDate": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBetweenDate"
                        },
                        "randBic": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBic"
                        },
                        "randBinary": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBinary"
                        },
                        "randBird": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBird"
                        },
                        "randBitcoinAddress": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBitcoinAddress"
                        },
                        "randBook": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBook"
                        },
                        "randBoolean": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBoolean"
                        },
                        "randBrand": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBrand"
                        },
                        "randBrowser": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBrowser"
                        },
                        "randCardinalDirection": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCardinalDirection"
                        },
                        "randCat": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCat"
                        },
                        "randCatchPhrase": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCatchPhrase"
                        },
                        "randCetacean": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCetacean"
                        },
                        "randChanceBoolean": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randChanceBoolean"
                        },
                        "randCity": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCity"
                        },
                        "randClothingSize": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randClothingSize"
                        },
                        "randCodeSnippet": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCodeSnippet"
                        },
                        "randColor": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randColor"
                        },
                        "randCompanyName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCompanyName"
                        },
                        "randCountry": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCountry"
                        },
                        "randCountryCode": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCountryCode"
                        },
                        "randCounty": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCounty"
                        },
                        "randCow": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCow"
                        },
                        "randCreditCard": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCreditCard"
                        },
                        "randCreditCardBrand": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCreditCardBrand"
                        },
                        "randCreditCardCVV": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCreditCardCVV"
                        },
                        "randCreditCardNumber": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCreditCardNumber"
                        },
                        "randCrocodilia": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCrocodilia"
                        },
                        "randCurrencyCode": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCurrencyCode"
                        },
                        "randCurrencyName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCurrencyName"
                        },
                        "randCurrencySymbol": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCurrencySymbol"
                        },
                        "randDatabase": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDatabase"
                        },
                        "randDatabaseCollation": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDatabaseCollation"
                        },
                        "randDatabaseColumn": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDatabaseColumn"
                        },
                        "randDatabaseEngine": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDatabaseEngine"
                        },
                        "randDatabaseType": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDatabaseType"
                        },
                        "randDepartment": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDepartment"
                        },
                        "randDirection": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDirection"
                        },
                        "randDirectoryPath": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDirectoryPath"
                        },
                        "randDog": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDog"
                        },
                        "randDomainName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDomainName"
                        },
                        "randDomainSuffix": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDomainSuffix"
                        },
                        "randDrinks": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDrinks"
                        },
                        "randEmail": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randEmail"
                        },
                        "randEmailProvider": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randEmailProvider"
                        },
                        "randEmoji": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randEmoji"
                        },
                        "randEthereumAddress": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randEthereumAddress"
                        },
                        "randFileExt": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFileExt"
                        },
                        "randFileName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFileName"
                        },
                        "randFilePath": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFilePath"
                        },
                        "randFileType": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFileType"
                        },
                        "randFirstName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFirstName"
                        },
                        "randFish": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFish"
                        },
                        "randFlightDetails": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFlightDetails"
                        },
                        "randFlightNumber": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFlightNumber"
                        },
                        "randFloat": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFloat"
                        },
                        "randFontFamily": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFontFamily"
                        },
                        "randFontSize": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFontSize"
                        },
                        "randFood": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFood"
                        },
                        "randFootballTeam": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFootballTeam"
                        },
                        "randFrequency": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFrequency"
                        },
                        "randFullAddress": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFullAddress"
                        },
                        "randFullName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFullName"
                        },
                        "randFutureDate": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFutureDate"
                        },
                        "randGender": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randGender"
                        },
                        "randGitBranch": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randGitBranch"
                        },
                        "randGitCommitEntry": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randGitCommitEntry"
                        },
                        "randGitCommitMessage": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randGitCommitMessage"
                        },
                        "randGitCommitSha": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randGitCommitSha"
                        },
                        "randGitShortSha": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randGitShortSha"
                        },
                        "randHex": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randHex"
                        },
                        "randHexaDecimal": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randHexaDecimal"
                        },
                        "randHorse": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randHorse"
                        },
                        "randHsl": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randHsl"
                        },
                        "randHttpMethod": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randHttpMethod"
                        },
                        "randIban": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randIban"
                        },
                        "randIceHockeyTeam": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randIceHockeyTeam"
                        },
                        "randImg": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randImg"
                        },
                        "randIntegration": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randIntegration"
                        },
                        "randIp": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randIp"
                        },
                        "randIpv6": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randIpv6"
                        },
                        "randJSON": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randJSON"
                        },
                        "randJobArea": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randJobArea"
                        },
                        "randJobDescriptor": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randJobDescriptor"
                        },
                        "randJobTitle": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randJobTitle"
                        },
                        "randJobType": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randJobType"
                        },
                        "randLanguage": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randLanguage"
                        },
                        "randLastName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randLastName"
                        },
                        "randLatitude": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randLatitude"
                        },
                        "randLine": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randLine"
                        },
                        "randLines": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randLines"
                        },
                        "randLion": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randLion"
                        },
                        "randLocale": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randLocale"
                        },
                        "randLongitude": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randLongitude"
                        },
                        "randMac": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMac"
                        },
                        "randMask": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMask"
                        },
                        "randMimeType": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMimeType"
                        },
                        "randMonth": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMonth"
                        },
                        "randMotorcycleManufacturer": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMotorcycleManufacturer"
                        },
                        "randMotorcylceManufacturer": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMotorcylceManufacturer"
                        },
                        "randMovie": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMovie"
                        },
                        "randMovieCharacter": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMovieCharacter"
                        },
                        "randMusicGenre": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMusicGenre"
                        },
                        "randNearbyGPSCoordinate": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randNearbyGPSCoordinate"
                        },
                        "randNumber": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randNumber"
                        },
                        "randOAuthProvider": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randOAuthProvider"
                        },
                        "randOctal": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randOctal"
                        },
                        "randOrdinalDirection": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randOrdinalDirection"
                        },
                        "randParagraph": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randParagraph"
                        },
                        "randPassword": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPassword"
                        },
                        "randPastDate": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPastDate"
                        },
                        "randPermission": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPermission"
                        },
                        "randPersonTitle": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPersonTitle"
                        },
                        "randPhoneNumber": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPhoneNumber"
                        },
                        "randPhrase": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPhrase"
                        },
                        "randPort": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPort"
                        },
                        "randPost": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPost"
                        },
                        "randPriority": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPriority"
                        },
                        "randProduct": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randProduct"
                        },
                        "randProductAdjective": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randProductAdjective"
                        },
                        "randProductCategory": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randProductCategory"
                        },
                        "randProductDescription": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randProductDescription"
                        },
                        "randProductMaterial": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randProductMaterial"
                        },
                        "randProductName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randProductName"
                        },
                        "randProgrammingLanguage": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randProgrammingLanguage"
                        },
                        "randPronoun": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPronoun"
                        },
                        "randProtocol": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randProtocol"
                        },
                        "randQuote": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randQuote"
                        },
                        "randRabbit": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randRabbit"
                        },
                        "randRecentDate": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randRecentDate"
                        },
                        "randRgb": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randRgb"
                        },
                        "randRole": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randRole"
                        },
                        "randRoutingNumber": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randRoutingNumber"
                        },
                        "randSeatNumber": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSeatNumber"
                        },
                        "randSemver": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSemver"
                        },
                        "randSentence": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSentence"
                        },
                        "randSequence": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSequence"
                        },
                        "randShape": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randShape"
                        },
                        "randSinger": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSinger"
                        },
                        "randSkill": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSkill"
                        },
                        "randSlug": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSlug"
                        },
                        "randSnake": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSnake"
                        },
                        "randSocial": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSocial"
                        },
                        "randSong": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSong"
                        },
                        "randSoonDate": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSoonDate"
                        },
                        "randSports": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSports"
                        },
                        "randSportsTeam": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSportsTeam"
                        },
                        "randState": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randState"
                        },
                        "randStateAbbr": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randStateAbbr"
                        },
                        "randStatus": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randStatus"
                        },
                        "randStreetAddress": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randStreetAddress"
                        },
                        "randStreetName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randStreetName"
                        },
                        "randSubscriptionPlan": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSubscriptionPlan"
                        },
                        "randSuperhero": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSuperhero"
                        },
                        "randSuperheroName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSuperheroName"
                        },
                        "randSvg": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSvg"
                        },
                        "randSwift": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSwift"
                        },
                        "randText": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randText"
                        },
                        "randTextRange": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randTextRange"
                        },
                        "randTimeZone": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randTimeZone"
                        },
                        "randTodo": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randTodo"
                        },
                        "randTransactionType": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randTransactionType"
                        },
                        "randUrl": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randUrl"
                        },
                        "randUser": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randUser"
                        },
                        "randUserAgent": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randUserAgent"
                        },
                        "randUserName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randUserName"
                        },
                        "randUuid": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randUuid"
                        },
                        "randVehicle": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randVehicle"
                        },
                        "randVehicleFuel": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randVehicleFuel"
                        },
                        "randVehicleManufacturer": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randVehicleManufacturer"
                        },
                        "randVehicleModel": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randVehicleModel"
                        },
                        "randVehicleType": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randVehicleType"
                        },
                        "randVerb": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randVerb"
                        },
                        "randWeekday": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randWeekday"
                        },
                        "randWord": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randWord"
                        },
                        "randZipCode": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randZipCode"
                        },
                        "random": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: random"
                        }
                      },
                      "additionalProperties": false,
                      "title": "Fake Data Plugin"
                    },
                    "slack": {
                      "type": "object",
                      "properties": {
                        "webhookUrl": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false,
                      "title": "Slack Plugin"
                    }
                  },
                  "additionalProperties": true,
                  "title": "Plugins"
                },
                "engines": {
                  "type": "object",
                  "description": "Configuration for specific engines used",
                  "properties": {
                    "playwright": {
                      "type": "object",
                      "properties": {
                        "aggregateByName": {
                          "description": "Aggregate Artillery metrics by test scenario name.\nhttps://www.artillery.io/docs/reference/engines/playwright#aggregate-metrics-by-scenario-name",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Aggregate by name"
                        },
                        "defaultTimeout": {
                          "description": "Default maximum time (in seconds) for all Playwright methods accepting the `timeout` option.\nhttps://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-timeout",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Default timeout"
                        },
                        "defaultNavigationTimeout": {
                          "description": "Default maximum navigation time (in seconds) for Playwright navigation methods, like `page.goto()`.\nhttps://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-navigation-timeout",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Default navigation timeout"
                        },
                        "testIdAttribute": {
                          "type": "string",
                          "description": "When set, changes the attribute used by locator `page.getByTestId` in Playwright. \n https://playwright.dev/docs/api/class-framelocator#frame-locator-get-by-test-id",
                          "title": "Test ID Attribute"
                        },
                        "extendedMetrics": {
                          "description": "If enabled, Artillery will collect additional metrics from Playwright.\nCheck more information here: https://www.artillery.io/docs/reference/engines/playwright#extended-metrics",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Playwright Extended Metrics"
                        },
                        "showAllPageMetrics": {
                          "description": "If enabled, Artillery will collect Web Vitals for all pages, rather than just ones that start with target URL.\nCheck more information here: https://www.artillery.io/docs/reference/engines/playwright#show-web-vital-metrics-for-all-pages",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Web Vitals on all Pages"
                        },
                        "launchOptions": {
                          "type": "object",
                          "description": "Arguments for the `browser.launch()` call in Playwright.\nhttps://playwright.dev/docs/api/class-browsertype#browser-type-launch",
                          "properties": {},
                          "additionalProperties": true,
                          "title": "Playwright launch options"
                        },
                        "contextOptions": {
                          "type": "object",
                          "description": "Arguments for the `browser.newContext()` call in Playwright.\nhttps://playwright.dev/docs/api/class-browser#browser-new-context",
                          "properties": {},
                          "additionalProperties": true,
                          "title": "Playwright context options"
                        },
                        "useSeparateBrowserPerVU": {
                          "description": "If enabled, a new browser process will be created for each VU. By default Artillery uses new browser contexts for new VUs.\nWARNING: Using this option is discouraged as it will increase CPU/memory usage of your tests.\nhttps://www.artillery.io/docs/reference/engines/playwright#configuration",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Use a separate browser process for each VU"
                        }
                      },
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "title": "Engines"
                },
                "ensure": {
                  "type": "object",
                  "properties": {
                    "thresholds": {
                      "type": "array",
                      "description": "Ensure that a metric is under some threshold value.\nhttps://www.artillery.io/docs/reference/extensions/ensure#threshold-checks",
                      "items": {
                        "type": [
                          "array",
                          "boolean",
                          "number",
                          "object",
                          "string",
                          "null"
                        ]
                      },
                      "title": "Threshold Checks"
                    },
                    "conditions": {
                      "type": "array",
                      "description": "Set more complex expressions for additional checks.\nhttps://www.artillery.io/docs/reference/extensions/ensure#advanced-conditional-checks",
                      "items": {
                        "type": "object",
                        "properties": {
                          "expression": {
                            "type": "string",
                            "title": "Conditional Expression"
                          },
                          "strict": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Strict?"
                          }
                        },
                        "additionalProperties": false
                      },
                      "title": "Conditional Checks"
                    },
                    "min": {
                      "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "Min"
                    },
                    "max": {
                      "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "Max"
                    },
                    "median": {
                      "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "Median"
                    },
                    "p95": {
                      "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "P95"
                    },
                    "p99": {
                      "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "P99"
                    },
                    "maxErrorRate": {
                      "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "Max Error Rate"
                    }
                  },
                  "additionalProperties": false,
                  "title": "Ensure Plugin"
                },
                "apdex": {
                  "type": "object",
                  "properties": {
                    "threshold": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "title": "Apdex Plugin"
                }
              },
              "required": [],
              "additionalProperties": true
            }
          },
          "additionalProperties": true,
          "patternProperties": {
            ".*": {
              "type": "object",
              "properties": {
                "target": {
                  "type": "string",
                  "examples": [
                    "https://example.com",
                    "ws://127.0.0.1"
                  ],
                  "description": "Endpoint of the system under test, such as a hostname, IP address or a URI.\nIn Playwright tests, this will be used as the baseURL by default.\n\nhttps://www.artillery.io/docs/reference/test-script#target---target-service",
                  "title": "Target"
                },
                "phases": {
                  "type": "array",
                  "description": "A load phase defines how Artillery generates new virtual users (VUs) in a specified time period.\nhttps://www.artillery.io/docs/reference/test-script#phases---load-phases",
                  "items": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "title": "Test Phase Name"
                          },
                          "duration": {
                            "description": "Test phase duration (in seconds).\nCan also be any valid human-readable duration: https://www.npmjs.com/package/ms .",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Test Phase Duration"
                          },
                          "maxVusers": {
                            "description": "Cap the number of concurrent virtual users at any given time.",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Maximum virtual users"
                          },
                          "arrivalRate": {
                            "description": "Constant arrival rate - i.e. the number of virtual users generated every second.\nhttps://www.artillery.io/docs/reference/test-script#constant-arrival-rate",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Arrival Rate"
                          },
                          "rampTo": {
                            "description": "Ramp from initial arrivalRate to this value over time period.\nhttps://www.artillery.io/docs/reference/test-script#ramp-up-rate",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Ramp up rate"
                          }
                        },
                        "required": [
                          "duration"
                        ],
                        "additionalProperties": false,
                        "anyOf": [
                          {
                            "required": [
                              "arrivalRate"
                            ]
                          },
                          {
                            "required": [
                              "rampTo"
                            ]
                          }
                        ],
                        "title": "Arrival Rate Phase"
                      },
                      {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "title": "Test Phase Name"
                          },
                          "duration": {
                            "description": "Test phase duration (in seconds).\nCan also be any valid human-readable duration: https://www.npmjs.com/package/ms .",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Test Phase Duration"
                          },
                          "maxVusers": {
                            "description": "Cap the number of concurrent virtual users at any given time.",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Maximum virtual users"
                          },
                          "arrivalCount": {
                            "description": "Fixed number of virtual users over that time period.\nhttps://www.artillery.io/docs/reference/test-script#fixed-number-of-arrivals-per-second",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Arrival Count"
                          }
                        },
                        "required": [
                          "duration",
                          "arrivalCount"
                        ],
                        "additionalProperties": false,
                        "title": "Arrival Count Phase"
                      },
                      {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "title": "Test Phase Name"
                          },
                          "pause": {
                            "description": "Pause the test phase execution for given duration (in seconds).\nCan also be any valid human-readable duration: https://www.npmjs.com/package/ms.",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Pause"
                          }
                        },
                        "required": [
                          "pause"
                        ],
                        "additionalProperties": false,
                        "title": "Pause Phase"
                      }
                    ],
                    "title": "Test Phase"
                  },
                  "title": "Phases"
                },
                "http": {
                  "type": "object",
                  "properties": {
                    "timeout": {
                      "description": "Increase or decrease request timeout",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "Request Timeout"
                    },
                    "maxSockets": {
                      "description": "Maximum amount of TCP connections per virtual user.\nhttps://www.artillery.io/docs/reference/engines/http#max-sockets-per-virtual-user",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "Maximum Sockets"
                    },
                    "extendedMetrics": {
                      "description": "Enable tracking of additional HTTP metrics.\nhttps://www.artillery.io/docs/reference/engines/http#additional-performance-metrics",
                      "anyOf": [
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "Enable Extended Metrics"
                    },
                    "defaults": {
                      "type": "object",
                      "properties": {
                        "headers": {
                          "type": "object",
                          "description": "Default headers to be used in all requests. Replace *. with your header name, and set string value.\nhttps://www.artillery.io/docs/reference/engines/http#default-configuration",
                          "properties": {
                            "/.*/": {
                              "type": "string",
                              "properties": {},
                              "required": [],
                              "additionalProperties": true
                            }
                          },
                          "additionalProperties": true,
                          "patternProperties": {
                            ".*": {
                              "type": "string",
                              "properties": {},
                              "required": [],
                              "additionalProperties": true
                            }
                          },
                          "title": "Default Headers"
                        },
                        "cookie": {
                          "type": "object",
                          "description": "Default cookies to be used in all requests. Replace *. with your cookie name, and set string value.",
                          "properties": {
                            "/.*/": {
                              "type": "string",
                              "properties": {},
                              "required": [],
                              "additionalProperties": true
                            }
                          },
                          "additionalProperties": true,
                          "patternProperties": {
                            ".*": {
                              "type": "string",
                              "properties": {},
                              "required": [],
                              "additionalProperties": true
                            }
                          },
                          "title": "Default Cookies"
                        },
                        "strictCapture": {
                          "description": "Whether to turn on strict capture by default for all captures.\nhttps://www.artillery.io/docs/reference/engines/http#turn-off-strict-capture",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Strict capture"
                        },
                        "think": {
                          "type": "object",
                          "properties": {
                            "jitter": {
                              "description": "Sets jitter to simulate real-world random variance into think time pauses. Accepts both number and percentage.",
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "additionalProperties": true,
                          "title": "Think Options"
                        }
                      },
                      "additionalProperties": true,
                      "title": "Configure Default Settings for all requests"
                    }
                  },
                  "additionalProperties": true,
                  "title": "HTTP Configuration"
                },
                "ws": {
                  "type": "object",
                  "properties": {
                    "subprotocols": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "json",
                          "soap",
                          "wamp",
                          "xmpp"
                        ]
                      },
                      "title": "Websocket sub-protocols"
                    },
                    "headers": {
                      "type": "object",
                      "properties": {
                        "/.*/": {
                          "type": "string",
                          "properties": {},
                          "required": [],
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": true,
                      "patternProperties": {
                        ".*": {
                          "type": "string",
                          "properties": {},
                          "required": [],
                          "additionalProperties": true
                        }
                      },
                      "title": "Headers"
                    },
                    "proxy": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "title": "URL"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "additionalProperties": true,
                      "title": "Proxy"
                    }
                  },
                  "additionalProperties": true,
                  "title": "Websocket Configuration"
                },
                "socketio": {
                  "type": "object",
                  "description": "For more information on supported options, visit https://socket.io/docs/v4/client-api/",
                  "properties": {
                    "query": {
                      "description": "Query parameters can be specified as a string or dictionary.",
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "/.*/": {
                              "type": "string",
                              "properties": {},
                              "required": [],
                              "additionalProperties": true
                            }
                          },
                          "additionalProperties": true,
                          "patternProperties": {
                            ".*": {
                              "type": "string",
                              "properties": {},
                              "required": [],
                              "additionalProperties": true
                            }
                          }
                        }
                      ],
                      "title": "Query"
                    },
                    "path": {
                      "type": "string"
                    },
                    "extraHeaders": {
                      "type": "object",
                      "description": "Extra headers may be passed with this option. \nThe extraHeaders option only works if the default polling transport is used. When using other transports, extra headers won't be taken into account by the server.",
                      "properties": {
                        "/.*/": {
                          "type": "string",
                          "properties": {},
                          "required": [],
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": true,
                      "patternProperties": {
                        ".*": {
                          "type": "string",
                          "properties": {},
                          "required": [],
                          "additionalProperties": true
                        }
                      },
                      "title": "Extra Headers"
                    },
                    "transports": {
                      "type": "array",
                      "description": "You can skip long-polling by using the transports option to specify WebSocket transport.",
                      "items": {
                        "const": "websocket"
                      },
                      "title": "Websocket Transports only"
                    }
                  },
                  "additionalProperties": true,
                  "title": "SocketIo Configuration"
                },
                "processor": {
                  "type": "string",
                  "description": "Path to a CommonJS (.js), ESM (.mjs) or Typescript (.ts) module to load for this test run.\nhttps://www.artillery.io/docs/reference/test-script#processor---custom-js-code",
                  "title": "Processor Function Path"
                },
                "variables": {
                  "type": "object",
                  "description": "Map of variables to expose to the test run.",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Variables"
                },
                "payload": {
                  "description": "Load data from CSV to be used during the test run:\nhttps://www.artillery.io/docs/reference/test-script#payload---loading-data-from-csv-files",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "path": {
                          "type": "string",
                          "title": "CSV Path"
                        },
                        "fields": {
                          "type": "array",
                          "description": "List of names of fields to be used in the test to load the data",
                          "items": {
                            "type": "string"
                          },
                          "title": "CSV Fields"
                        },
                        "order": {
                          "description": "Controls how the CSV rows are selected for each virtual user.",
                          "anyOf": [
                            {
                              "const": "random"
                            },
                            {
                              "const": "sequence"
                            }
                          ],
                          "title": "Order"
                        },
                        "skipHeader": {
                          "description": "Set to `true` to make Artillery skip the first row in the CSV file (typically the header row)",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Skip Header?"
                        },
                        "delimiter": {
                          "type": "string",
                          "description": "Custom delimiter character to use in the payload.",
                          "title": "Delimiter"
                        },
                        "cast": {
                          "description": "Controls whether Artillery converts fields to native types (e.g. numbers or booleans). To keep those fields as strings, set this option to `false`.",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Cast?"
                        },
                        "skipEmptyLines": {
                          "description": "Controls whether Artillery should skip empty lines in the payload.",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Skip empty lines?"
                        },
                        "loadAll": {
                          "description": "Set loadAll to true to provide all rows to each VU",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Load all data"
                        },
                        "name": {
                          "type": "string",
                          "description": "Name of loadAll data",
                          "title": "Data Name"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "path": {
                            "type": "string",
                            "title": "CSV Path"
                          },
                          "fields": {
                            "type": "array",
                            "description": "List of names of fields to be used in the test to load the data",
                            "items": {
                              "type": "string"
                            },
                            "title": "CSV Fields"
                          },
                          "order": {
                            "description": "Controls how the CSV rows are selected for each virtual user.",
                            "anyOf": [
                              {
                                "const": "random"
                              },
                              {
                                "const": "sequence"
                              }
                            ],
                            "title": "Order"
                          },
                          "skipHeader": {
                            "description": "Set to `true` to make Artillery skip the first row in the CSV file (typically the header row)",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Skip Header?"
                          },
                          "delimiter": {
                            "type": "string",
                            "description": "Custom delimiter character to use in the payload.",
                            "title": "Delimiter"
                          },
                          "cast": {
                            "description": "Controls whether Artillery converts fields to native types (e.g. numbers or booleans). To keep those fields as strings, set this option to `false`.",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Cast?"
                          },
                          "skipEmptyLines": {
                            "description": "Controls whether Artillery should skip empty lines in the payload.",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Skip empty lines?"
                          },
                          "loadAll": {
                            "description": "Set loadAll to true to provide all rows to each VU",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Load all data"
                          },
                          "name": {
                            "type": "string",
                            "description": "Name of loadAll data",
                            "title": "Data Name"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "CSV Payload"
                },
                "tls": {
                  "type": "object",
                  "properties": {
                    "rejectUnauthorized": {
                      "type": "boolean",
                      "title": "Set this setting to `false` to tell Artillery to accept self-signed TLS certificates."
                    }
                  },
                  "additionalProperties": true,
                  "title": "TLS Settings"
                },
                "bundling": {
                  "type": "object",
                  "description": "Configuration for bundling the test script and its dependencies",
                  "properties": {
                    "external": {
                      "type": "array",
                      "description": "Can be used when using Typescript (.ts) processors. List npm modules to prevent them from being bundled. Use in case there are issues with bundling certain packages.\nhttps://www.artillery.io/docs/reference/test-script#preventing-bundling-of-typescript-packages",
                      "items": {
                        "type": "string"
                      },
                      "title": "External Packages"
                    }
                  },
                  "additionalProperties": true,
                  "title": "Bundling"
                },
                "plugins": {
                  "type": "object",
                  "description": "List of Artillery plugins to use (official or third-party) and their configuration",
                  "properties": {
                    "expect": {
                      "type": "object",
                      "properties": {
                        "outputFormat": {
                          "type": "string",
                          "enum": [
                            "pretty",
                            "json",
                            "prettyError",
                            "silent"
                          ],
                          "title": "Output Format"
                        },
                        "formatter": {
                          "type": "string",
                          "description": "Please use the `outputFormat` option instead.",
                          "enum": [
                            "pretty",
                            "json",
                            "prettyError",
                            "silent"
                          ],
                          "title": "(Deprecated) Formatter"
                        },
                        "reportFailuresAsErrors": {
                          "description": "Reports failures from expect plugin as errors in Artillery Report",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Report Failures as Errors"
                        },
                        "useOnlyRequestNames": {
                          "description": "Use request name instead of the URL path when logging requests in console and report",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Use Only Request Names"
                        },
                        "expectDefault200": {
                          "description": "Sets a 200 OK status code expectation for all requests.",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Expect 200 by default"
                        }
                      },
                      "additionalProperties": false,
                      "title": "Expect Plugin"
                    },
                    "ensure": {
                      "type": "object",
                      "properties": {
                        "thresholds": {
                          "type": "array",
                          "description": "Ensure that a metric is under some threshold value.\nhttps://www.artillery.io/docs/reference/extensions/ensure#threshold-checks",
                          "items": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ]
                          },
                          "title": "Threshold Checks"
                        },
                        "conditions": {
                          "type": "array",
                          "description": "Set more complex expressions for additional checks.\nhttps://www.artillery.io/docs/reference/extensions/ensure#advanced-conditional-checks",
                          "items": {
                            "type": "object",
                            "properties": {
                              "expression": {
                                "type": "string",
                                "title": "Conditional Expression"
                              },
                              "strict": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "additionalProperties": false
                          },
                          "title": "Conditional Checks"
                        },
                        "min": {
                          "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Min"
                        },
                        "max": {
                          "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Max"
                        },
                        "median": {
                          "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Median"
                        },
                        "p95": {
                          "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "P95"
                        },
                        "p99": {
                          "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "P99"
                        },
                        "maxErrorRate": {
                          "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Max Error Rate"
                        }
                      },
                      "additionalProperties": false,
                      "title": "Ensure Plugin"
                    },
                    "apdex": {
                      "type": "object",
                      "properties": {
                        "threshold": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false,
                      "title": "Apdex Plugin"
                    },
                    "metrics-by-endpoint": {
                      "type": "object",
                      "description": "Visualise metrics per endpoint visited during your HTTP test. Docs: https://www.artillery.io/docs/reference/extensions/metrics-by-endpoint\nNote: this plugin is enabled by default, and will display per endpoint metrics in the report. If you want to see them in the console, enable it manually.",
                      "properties": {
                        "useOnlyRequestNames": {
                          "description": "Use request name property as endpoint name instead of the full URL. Recommended for dynamic URLs.",
                          "default": false,
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Use Only Request Names"
                        },
                        "stripQueryString": {
                          "description": "Strip query strings from the endpoint name automatically.",
                          "default": false,
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Strip Query String"
                        },
                        "ignoreUnnamedRequests": {
                          "description": "Ignore per-endpoint metrics for requests without a name property set.",
                          "default": false,
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Ignore Unnamed Requests"
                        },
                        "metricsNamespace": {
                          "type": "string",
                          "description": "Custom prefix to use for metrics published by this plugin.",
                          "default": "plugins.metrics-by-endpoint",
                          "title": "Metrics Namespace"
                        }
                      },
                      "additionalProperties": false,
                      "title": "Metrics by Endpoint Plugin"
                    },
                    "publish-metrics": {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "cloudwatch"
                              },
                              "region": {
                                "type": "string"
                              },
                              "namespace": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "dimensions": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "value": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "name",
                                    "value"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "includeOnly": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "excluded": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "sendOnlyTraces": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "traces": {
                                "type": "object",
                                "properties": {
                                  "serviceName": {
                                    "type": "string"
                                  },
                                  "sampleRate": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "useRequestNames": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "annotations": {
                                    "type": "object",
                                    "properties": {},
                                    "additionalProperties": true
                                  },
                                  "smartSampling": {
                                    "type": "object",
                                    "properties": {
                                      "thresholds": {
                                        "type": "object",
                                        "properties": {
                                          "firstByte": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "total": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        },
                                        "additionalProperties": false
                                      }
                                    },
                                    "additionalProperties": false
                                  },
                                  "replaceSpanNameRegex": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "pattern": {
                                          "type": "string"
                                        },
                                        "as": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "pattern",
                                        "as"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "additionalProperties": false,
                            "title": "Cloudwatch Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "datadog"
                              },
                              "apiKey": {
                                "type": "string"
                              },
                              "appKey": {
                                "type": "string"
                              },
                              "apiHost": {
                                "type": "string"
                              },
                              "prefix": {
                                "type": "string"
                              },
                              "tags": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "includeOnly": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "excluded": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "event": {
                                "type": "object",
                                "properties": {
                                  "title": {
                                    "type": "string"
                                  },
                                  "text": {
                                    "type": "string"
                                  },
                                  "priority": {
                                    "type": "string",
                                    "enum": [
                                      "normal",
                                      "low"
                                    ]
                                  },
                                  "tags": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "alertType": {
                                    "type": "string",
                                    "enum": [
                                      "error",
                                      "warning",
                                      "info",
                                      "success"
                                    ]
                                  },
                                  "send": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  }
                                },
                                "additionalProperties": false
                              },
                              "sendOnlyTraces": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "traces": {
                                "type": "object",
                                "properties": {
                                  "serviceName": {
                                    "type": "string"
                                  },
                                  "sampleRate": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "useRequestNames": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "tags": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "smartSampling": {
                                    "type": "object",
                                    "properties": {
                                      "thresholds": {
                                        "type": "object",
                                        "properties": {
                                          "firstByte": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "total": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        },
                                        "additionalProperties": false
                                      }
                                    },
                                    "additionalProperties": false
                                  },
                                  "replaceSpanNameRegex": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "pattern": {
                                          "type": "string"
                                        },
                                        "as": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "pattern",
                                        "as"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "additionalProperties": false,
                            "title": "Datadog Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "newrelic"
                              },
                              "licenseKey": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "prefix": {
                                "type": "string"
                              },
                              "attributes": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "includeOnly": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "excluded": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "event": {
                                "type": "object",
                                "properties": {
                                  "accountId": {
                                    "type": "string"
                                  },
                                  "eventType": {
                                    "type": "string"
                                  },
                                  "attributes": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "send": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "accountId"
                                ],
                                "additionalProperties": false
                              },
                              "sendOnlyTraces": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "traces": {
                                "type": "object",
                                "properties": {
                                  "serviceName": {
                                    "type": "string"
                                  },
                                  "sampleRate": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "useRequestNames": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "attributes": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "smartSampling": {
                                    "type": "object",
                                    "properties": {
                                      "thresholds": {
                                        "type": "object",
                                        "properties": {
                                          "firstByte": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "total": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        },
                                        "additionalProperties": false
                                      }
                                    },
                                    "additionalProperties": false
                                  },
                                  "replaceSpanNameRegex": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "pattern": {
                                          "type": "string"
                                        },
                                        "as": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "pattern",
                                        "as"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "type",
                              "licenseKey"
                            ],
                            "additionalProperties": false,
                            "title": "New Relic Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "splunk"
                              },
                              "accessToken": {
                                "type": "string"
                              },
                              "realm": {
                                "type": "string"
                              },
                              "prefix": {
                                "type": "string"
                              },
                              "dimensions": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "includeOnly": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "excluded": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "event": {
                                "type": "object",
                                "properties": {
                                  "eventType": {
                                    "type": "string"
                                  },
                                  "dimensions": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "properties": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "send": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "type",
                              "accessToken"
                            ],
                            "additionalProperties": false,
                            "title": "Splunk Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "prometheus"
                              },
                              "pushgateway": {
                                "type": "string"
                              },
                              "tags": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "type",
                              "pushgateway"
                            ],
                            "additionalProperties": false,
                            "title": "Prometheus (Pushgateway) Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "dynatrace"
                              },
                              "apiToken": {
                                "type": "string"
                              },
                              "envUrl": {
                                "type": "string"
                              },
                              "prefix": {
                                "type": "string"
                              },
                              "dimensions": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "includeOnly": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "excluded": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "event": {
                                "type": "object",
                                "properties": {
                                  "eventType": {
                                    "type": "string"
                                  },
                                  "title": {
                                    "type": "string"
                                  },
                                  "properties": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "entitySelector": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "send": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  }
                                },
                                "additionalProperties": false
                              },
                              "sendOnlyTraces": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "traces": {
                                "type": "object",
                                "properties": {
                                  "serviceName": {
                                    "type": "string"
                                  },
                                  "sampleRate": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "useRequestNames": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "attributes": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "smartSampling": {
                                    "type": "object",
                                    "properties": {
                                      "thresholds": {
                                        "type": "object",
                                        "properties": {
                                          "firstByte": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "total": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        },
                                        "additionalProperties": false
                                      }
                                    },
                                    "additionalProperties": false
                                  },
                                  "replaceSpanNameRegex": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "pattern": {
                                          "type": "string"
                                        },
                                        "as": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "pattern",
                                        "as"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "type",
                              "apiToken",
                              "envUrl"
                            ],
                            "additionalProperties": false,
                            "title": "Dynatrace Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "honeycomb"
                              },
                              "apiKey": {
                                "type": "string"
                              },
                              "writeKey": {
                                "type": "string"
                              },
                              "dataset": {
                                "type": "string"
                              },
                              "sampleRate": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "enabled": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "useRequestNames": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "attributes": {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": true
                              },
                              "smartSampling": {
                                "type": "object",
                                "properties": {
                                  "thresholds": {
                                    "type": "object",
                                    "properties": {
                                      "firstByte": {
                                        "anyOf": [
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ]
                                      },
                                      "total": {
                                        "anyOf": [
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ]
                                      }
                                    },
                                    "additionalProperties": false
                                  }
                                },
                                "additionalProperties": false
                              },
                              "replaceSpanNameRegex": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "pattern": {
                                      "type": "string"
                                    },
                                    "as": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "pattern",
                                    "as"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "additionalProperties": false,
                            "title": "Honeycomb (Tracing) Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "lightstep"
                              },
                              "accessToken": {
                                "type": "string"
                              },
                              "componentName": {
                                "type": "string"
                              },
                              "tags": {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              "enabled": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "type",
                              "accessToken",
                              "componentName"
                            ],
                            "additionalProperties": false,
                            "title": "Lightstep (Tracing) Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "mixpanel"
                              },
                              "projectToken": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "type",
                              "projectToken"
                            ],
                            "additionalProperties": false,
                            "title": "Mixpanel Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "statsd"
                              },
                              "host": {
                                "type": "string"
                              },
                              "port": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "prefix": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "additionalProperties": false,
                            "title": "StatsD Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "influxdb-statsd"
                              },
                              "prefix": {
                                "type": "string"
                              },
                              "tags": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "event": {
                                "type": "object",
                                "properties": {
                                  "priority": {
                                    "type": "string",
                                    "enum": [
                                      "normal",
                                      "low"
                                    ]
                                  },
                                  "tags": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "additionalProperties": false,
                            "title": "InfluxDB/Telegraf Reporter"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "open-telemetry"
                              },
                              "serviceName": {
                                "type": "string"
                              },
                              "metrics": {
                                "type": "object",
                                "properties": {
                                  "endpoint": {
                                    "type": "string"
                                  },
                                  "headers": {
                                    "type": "object",
                                    "properties": {},
                                    "additionalProperties": true
                                  },
                                  "exporter": {
                                    "type": "string",
                                    "default": "otlp-http",
                                    "enum": [
                                      "otlp-http",
                                      "otlp-proto",
                                      "otlp-grpc"
                                    ]
                                  },
                                  "includeOnly": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "excluded": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "attributes": {
                                    "type": "object",
                                    "properties": {},
                                    "additionalProperties": true
                                  }
                                },
                                "additionalProperties": false
                              },
                              "traces": {
                                "type": "object",
                                "properties": {
                                  "endpoint": {
                                    "type": "string"
                                  },
                                  "headers": {
                                    "type": "object",
                                    "properties": {},
                                    "additionalProperties": true
                                  },
                                  "exporter": {
                                    "type": "string",
                                    "default": "otlp-http",
                                    "enum": [
                                      "otlp-http",
                                      "otlp-proto",
                                      "otlp-grpc",
                                      "zipkin"
                                    ]
                                  },
                                  "sampleRate": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "useRequestNames": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "attributes": {
                                    "type": "object",
                                    "properties": {},
                                    "additionalProperties": true
                                  },
                                  "smartSampling": {
                                    "type": "object",
                                    "properties": {
                                      "thresholds": {
                                        "type": "object",
                                        "properties": {
                                          "firstByte": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "total": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        },
                                        "additionalProperties": false
                                      }
                                    },
                                    "additionalProperties": false
                                  },
                                  "replaceSpanNameRegex": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "pattern": {
                                          "type": "string"
                                        },
                                        "as": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "pattern",
                                        "as"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "additionalProperties": false,
                            "title": "OpenTelemetry Reporter"
                          }
                        ]
                      },
                      "title": "Publish Metrics Plugin"
                    },
                    "fake-data": {
                      "type": "object",
                      "description": "This plugin adds access to random realistic test data generation using falso. You can configure the parameters of each function in the config. \nFor more information, check our documentation: https://www.artillery.io/docs/reference/extensions/fake-data",
                      "properties": {
                        "randAbbreviation": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAbbreviation"
                        },
                        "randAbn": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAbn"
                        },
                        "randAccessory": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAccessory"
                        },
                        "randAccount": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAccount"
                        },
                        "randAddress": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAddress"
                        },
                        "randAggregation": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAggregation"
                        },
                        "randAirline": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAirline"
                        },
                        "randAirport": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAirport"
                        },
                        "randAirportCode": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAirportCode"
                        },
                        "randAirportName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAirportName"
                        },
                        "randAlpha": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAlpha"
                        },
                        "randAlphaNumeric": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAlphaNumeric"
                        },
                        "randAmericanFootballTeam": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAmericanFootballTeam"
                        },
                        "randAmount": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAmount"
                        },
                        "randAnimal": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAnimal"
                        },
                        "randAnimalType": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAnimalType"
                        },
                        "randArn": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randArn"
                        },
                        "randAvatar": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAvatar"
                        },
                        "randAwsRegion": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAwsRegion"
                        },
                        "randAwsRequestId": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAwsRequestId"
                        },
                        "randAwsService": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randAwsService"
                        },
                        "randBaseballTeam": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBaseballTeam"
                        },
                        "randBasketballTeam": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBasketballTeam"
                        },
                        "randBear": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBear"
                        },
                        "randBetweenDate": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBetweenDate"
                        },
                        "randBic": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBic"
                        },
                        "randBinary": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBinary"
                        },
                        "randBird": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBird"
                        },
                        "randBitcoinAddress": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBitcoinAddress"
                        },
                        "randBook": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBook"
                        },
                        "randBoolean": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBoolean"
                        },
                        "randBrand": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBrand"
                        },
                        "randBrowser": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randBrowser"
                        },
                        "randCardinalDirection": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCardinalDirection"
                        },
                        "randCat": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCat"
                        },
                        "randCatchPhrase": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCatchPhrase"
                        },
                        "randCetacean": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCetacean"
                        },
                        "randChanceBoolean": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randChanceBoolean"
                        },
                        "randCity": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCity"
                        },
                        "randClothingSize": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randClothingSize"
                        },
                        "randCodeSnippet": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCodeSnippet"
                        },
                        "randColor": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randColor"
                        },
                        "randCompanyName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCompanyName"
                        },
                        "randCountry": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCountry"
                        },
                        "randCountryCode": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCountryCode"
                        },
                        "randCounty": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCounty"
                        },
                        "randCow": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCow"
                        },
                        "randCreditCard": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCreditCard"
                        },
                        "randCreditCardBrand": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCreditCardBrand"
                        },
                        "randCreditCardCVV": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCreditCardCVV"
                        },
                        "randCreditCardNumber": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCreditCardNumber"
                        },
                        "randCrocodilia": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCrocodilia"
                        },
                        "randCurrencyCode": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCurrencyCode"
                        },
                        "randCurrencyName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCurrencyName"
                        },
                        "randCurrencySymbol": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randCurrencySymbol"
                        },
                        "randDatabase": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDatabase"
                        },
                        "randDatabaseCollation": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDatabaseCollation"
                        },
                        "randDatabaseColumn": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDatabaseColumn"
                        },
                        "randDatabaseEngine": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDatabaseEngine"
                        },
                        "randDatabaseType": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDatabaseType"
                        },
                        "randDepartment": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDepartment"
                        },
                        "randDirection": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDirection"
                        },
                        "randDirectoryPath": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDirectoryPath"
                        },
                        "randDog": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDog"
                        },
                        "randDomainName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDomainName"
                        },
                        "randDomainSuffix": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDomainSuffix"
                        },
                        "randDrinks": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randDrinks"
                        },
                        "randEmail": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randEmail"
                        },
                        "randEmailProvider": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randEmailProvider"
                        },
                        "randEmoji": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randEmoji"
                        },
                        "randEthereumAddress": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randEthereumAddress"
                        },
                        "randFileExt": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFileExt"
                        },
                        "randFileName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFileName"
                        },
                        "randFilePath": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFilePath"
                        },
                        "randFileType": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFileType"
                        },
                        "randFirstName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFirstName"
                        },
                        "randFish": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFish"
                        },
                        "randFlightDetails": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFlightDetails"
                        },
                        "randFlightNumber": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFlightNumber"
                        },
                        "randFloat": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFloat"
                        },
                        "randFontFamily": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFontFamily"
                        },
                        "randFontSize": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFontSize"
                        },
                        "randFood": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFood"
                        },
                        "randFootballTeam": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFootballTeam"
                        },
                        "randFrequency": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFrequency"
                        },
                        "randFullAddress": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFullAddress"
                        },
                        "randFullName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFullName"
                        },
                        "randFutureDate": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randFutureDate"
                        },
                        "randGender": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randGender"
                        },
                        "randGitBranch": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randGitBranch"
                        },
                        "randGitCommitEntry": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randGitCommitEntry"
                        },
                        "randGitCommitMessage": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randGitCommitMessage"
                        },
                        "randGitCommitSha": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randGitCommitSha"
                        },
                        "randGitShortSha": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randGitShortSha"
                        },
                        "randHex": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randHex"
                        },
                        "randHexaDecimal": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randHexaDecimal"
                        },
                        "randHorse": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randHorse"
                        },
                        "randHsl": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randHsl"
                        },
                        "randHttpMethod": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randHttpMethod"
                        },
                        "randIban": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randIban"
                        },
                        "randIceHockeyTeam": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randIceHockeyTeam"
                        },
                        "randImg": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randImg"
                        },
                        "randIntegration": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randIntegration"
                        },
                        "randIp": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randIp"
                        },
                        "randIpv6": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randIpv6"
                        },
                        "randJSON": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randJSON"
                        },
                        "randJobArea": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randJobArea"
                        },
                        "randJobDescriptor": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randJobDescriptor"
                        },
                        "randJobTitle": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randJobTitle"
                        },
                        "randJobType": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randJobType"
                        },
                        "randLanguage": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randLanguage"
                        },
                        "randLastName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randLastName"
                        },
                        "randLatitude": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randLatitude"
                        },
                        "randLine": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randLine"
                        },
                        "randLines": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randLines"
                        },
                        "randLion": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randLion"
                        },
                        "randLocale": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randLocale"
                        },
                        "randLongitude": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randLongitude"
                        },
                        "randMac": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMac"
                        },
                        "randMask": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMask"
                        },
                        "randMimeType": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMimeType"
                        },
                        "randMonth": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMonth"
                        },
                        "randMotorcycleManufacturer": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMotorcycleManufacturer"
                        },
                        "randMotorcylceManufacturer": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMotorcylceManufacturer"
                        },
                        "randMovie": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMovie"
                        },
                        "randMovieCharacter": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMovieCharacter"
                        },
                        "randMusicGenre": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randMusicGenre"
                        },
                        "randNearbyGPSCoordinate": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randNearbyGPSCoordinate"
                        },
                        "randNumber": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randNumber"
                        },
                        "randOAuthProvider": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randOAuthProvider"
                        },
                        "randOctal": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randOctal"
                        },
                        "randOrdinalDirection": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randOrdinalDirection"
                        },
                        "randParagraph": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randParagraph"
                        },
                        "randPassword": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPassword"
                        },
                        "randPastDate": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPastDate"
                        },
                        "randPermission": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPermission"
                        },
                        "randPersonTitle": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPersonTitle"
                        },
                        "randPhoneNumber": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPhoneNumber"
                        },
                        "randPhrase": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPhrase"
                        },
                        "randPort": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPort"
                        },
                        "randPost": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPost"
                        },
                        "randPriority": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPriority"
                        },
                        "randProduct": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randProduct"
                        },
                        "randProductAdjective": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randProductAdjective"
                        },
                        "randProductCategory": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randProductCategory"
                        },
                        "randProductDescription": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randProductDescription"
                        },
                        "randProductMaterial": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randProductMaterial"
                        },
                        "randProductName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randProductName"
                        },
                        "randProgrammingLanguage": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randProgrammingLanguage"
                        },
                        "randPronoun": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randPronoun"
                        },
                        "randProtocol": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randProtocol"
                        },
                        "randQuote": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randQuote"
                        },
                        "randRabbit": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randRabbit"
                        },
                        "randRecentDate": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randRecentDate"
                        },
                        "randRgb": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randRgb"
                        },
                        "randRole": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randRole"
                        },
                        "randRoutingNumber": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randRoutingNumber"
                        },
                        "randSeatNumber": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSeatNumber"
                        },
                        "randSemver": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSemver"
                        },
                        "randSentence": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSentence"
                        },
                        "randSequence": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSequence"
                        },
                        "randShape": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randShape"
                        },
                        "randSinger": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSinger"
                        },
                        "randSkill": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSkill"
                        },
                        "randSlug": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSlug"
                        },
                        "randSnake": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSnake"
                        },
                        "randSocial": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSocial"
                        },
                        "randSong": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSong"
                        },
                        "randSoonDate": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSoonDate"
                        },
                        "randSports": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSports"
                        },
                        "randSportsTeam": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSportsTeam"
                        },
                        "randState": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randState"
                        },
                        "randStateAbbr": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randStateAbbr"
                        },
                        "randStatus": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randStatus"
                        },
                        "randStreetAddress": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randStreetAddress"
                        },
                        "randStreetName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randStreetName"
                        },
                        "randSubscriptionPlan": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSubscriptionPlan"
                        },
                        "randSuperhero": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSuperhero"
                        },
                        "randSuperheroName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSuperheroName"
                        },
                        "randSvg": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSvg"
                        },
                        "randSwift": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randSwift"
                        },
                        "randText": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randText"
                        },
                        "randTextRange": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randTextRange"
                        },
                        "randTimeZone": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randTimeZone"
                        },
                        "randTodo": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randTodo"
                        },
                        "randTransactionType": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randTransactionType"
                        },
                        "randUrl": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randUrl"
                        },
                        "randUser": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randUser"
                        },
                        "randUserAgent": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randUserAgent"
                        },
                        "randUserName": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randUserName"
                        },
                        "randUuid": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randUuid"
                        },
                        "randVehicle": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randVehicle"
                        },
                        "randVehicleFuel": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randVehicleFuel"
                        },
                        "randVehicleManufacturer": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randVehicleManufacturer"
                        },
                        "randVehicleModel": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randVehicleModel"
                        },
                        "randVehicleType": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randVehicleType"
                        },
                        "randVerb": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randVerb"
                        },
                        "randWeekday": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randWeekday"
                        },
                        "randWord": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randWord"
                        },
                        "randZipCode": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: randZipCode"
                        },
                        "random": {
                          "type": "object",
                          "description": "For information on what parameters this function takes, check the falso documentation: https://ngneat.github.io/falso/docs/getting-started",
                          "properties": {},
                          "additionalProperties": false,
                          "title": "Falso Function: random"
                        }
                      },
                      "additionalProperties": false,
                      "title": "Fake Data Plugin"
                    },
                    "slack": {
                      "type": "object",
                      "properties": {
                        "webhookUrl": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false,
                      "title": "Slack Plugin"
                    }
                  },
                  "additionalProperties": true,
                  "title": "Plugins"
                },
                "engines": {
                  "type": "object",
                  "description": "Configuration for specific engines used",
                  "properties": {
                    "playwright": {
                      "type": "object",
                      "properties": {
                        "aggregateByName": {
                          "description": "Aggregate Artillery metrics by test scenario name.\nhttps://www.artillery.io/docs/reference/engines/playwright#aggregate-metrics-by-scenario-name",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Aggregate by name"
                        },
                        "defaultTimeout": {
                          "description": "Default maximum time (in seconds) for all Playwright methods accepting the `timeout` option.\nhttps://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-timeout",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Default timeout"
                        },
                        "defaultNavigationTimeout": {
                          "description": "Default maximum navigation time (in seconds) for Playwright navigation methods, like `page.goto()`.\nhttps://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-navigation-timeout",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Default navigation timeout"
                        },
                        "testIdAttribute": {
                          "type": "string",
                          "description": "When set, changes the attribute used by locator `page.getByTestId` in Playwright. \n https://playwright.dev/docs/api/class-framelocator#frame-locator-get-by-test-id",
                          "title": "Test ID Attribute"
                        },
                        "extendedMetrics": {
                          "description": "If enabled, Artillery will collect additional metrics from Playwright.\nCheck more information here: https://www.artillery.io/docs/reference/engines/playwright#extended-metrics",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Playwright Extended Metrics"
                        },
                        "showAllPageMetrics": {
                          "description": "If enabled, Artillery will collect Web Vitals for all pages, rather than just ones that start with target URL.\nCheck more information here: https://www.artillery.io/docs/reference/engines/playwright#show-web-vital-metrics-for-all-pages",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Web Vitals on all Pages"
                        },
                        "launchOptions": {
                          "type": "object",
                          "description": "Arguments for the `browser.launch()` call in Playwright.\nhttps://playwright.dev/docs/api/class-browsertype#browser-type-launch",
                          "properties": {},
                          "additionalProperties": true,
                          "title": "Playwright launch options"
                        },
                        "contextOptions": {
                          "type": "object",
                          "description": "Arguments for the `browser.newContext()` call in Playwright.\nhttps://playwright.dev/docs/api/class-browser#browser-new-context",
                          "properties": {},
                          "additionalProperties": true,
                          "title": "Playwright context options"
                        },
                        "useSeparateBrowserPerVU": {
                          "description": "If enabled, a new browser process will be created for each VU. By default Artillery uses new browser contexts for new VUs.\nWARNING: Using this option is discouraged as it will increase CPU/memory usage of your tests.\nhttps://www.artillery.io/docs/reference/engines/playwright#configuration",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Use a separate browser process for each VU"
                        }
                      },
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "title": "Engines"
                },
                "ensure": {
                  "type": "object",
                  "properties": {
                    "thresholds": {
                      "type": "array",
                      "description": "Ensure that a metric is under some threshold value.\nhttps://www.artillery.io/docs/reference/extensions/ensure#threshold-checks",
                      "items": {
                        "type": [
                          "array",
                          "boolean",
                          "number",
                          "object",
                          "string",
                          "null"
                        ]
                      },
                      "title": "Threshold Checks"
                    },
                    "conditions": {
                      "type": "array",
                      "description": "Set more complex expressions for additional checks.\nhttps://www.artillery.io/docs/reference/extensions/ensure#advanced-conditional-checks",
                      "items": {
                        "type": "object",
                        "properties": {
                          "expression": {
                            "type": "string",
                            "title": "Conditional Expression"
                          },
                          "strict": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Strict?"
                          }
                        },
                        "additionalProperties": false
                      },
                      "title": "Conditional Checks"
                    },
                    "min": {
                      "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "Min"
                    },
                    "max": {
                      "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "Max"
                    },
                    "median": {
                      "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "Median"
                    },
                    "p95": {
                      "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "P95"
                    },
                    "p99": {
                      "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "P99"
                    },
                    "maxErrorRate": {
                      "description": "Legacy Basic Check\nhttps://www.artillery.io/docs/reference/extensions/ensure#basic-checks",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "Max Error Rate"
                    }
                  },
                  "additionalProperties": false,
                  "title": "Ensure Plugin"
                },
                "apdex": {
                  "type": "object",
                  "properties": {
                    "threshold": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "title": "Apdex Plugin"
                }
              },
              "required": [],
              "additionalProperties": true
            }
          },
          "title": "Environments"
        }
      },
      "additionalProperties": true,
      "title": "Config Section"
    },
    "HttpFlowItemSchema": {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "function": {
              "type": "string",
              "description": "Function name to run.",
              "title": "Function"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "log": {
              "type": "string",
              "description": "Print given message to the console.",
              "title": "Log"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "think": {
              "description": "Pause virtual user for the given duration (in seconds).",
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "title": "Think time"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "get": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL"
                },
                "name": {
                  "type": "string",
                  "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                  "title": "URL name"
                },
                "headers": {
                  "type": "object",
                  "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Headers"
                },
                "cookie": {
                  "type": "object",
                  "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Cookies"
                },
                "followRedirect": {
                  "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Disable redirect following"
                },
                "qs": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Query string object"
                },
                "gzip": {
                  "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                  "default": true,
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Compression"
                },
                "capture": {
                  "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                  "anyOf": [
                    {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "json": {
                              "type": "string",
                              "title": "Jsonpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "json"
                          ],
                          "additionalProperties": true,
                          "title": "JSON Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "xpath": {
                              "type": "string",
                              "title": "Xpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "xpath"
                          ],
                          "additionalProperties": true,
                          "title": "XPath Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "regexp": {
                              "type": "string",
                              "title": "Regular expression"
                            },
                            "group": {
                              "description": "Named or Integer Index capturing group",
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Regex Group"
                            },
                            "flags": {
                              "type": "object",
                              "description": "Flags for the regular expression",
                              "properties": {},
                              "additionalProperties": true
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "regexp"
                          ],
                          "additionalProperties": true,
                          "title": "RegExp Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "header": {
                              "type": "string",
                              "description": "Allows you to set the name of the response header whose value you want to capture.",
                              "title": "Header name"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "header"
                          ],
                          "additionalProperties": true,
                          "title": "Header Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "selector": {
                              "type": "string",
                              "title": "Cheerio element selector"
                            },
                            "attr": {
                              "type": "string",
                              "title": "Attribute Name"
                            },
                            "index": {
                              "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                              "anyOf": [
                                {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                },
                                {
                                  "type": "string",
                                  "enum": [
                                    "last",
                                    "random"
                                  ]
                                }
                              ],
                              "title": "Desired Index"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "selector"
                          ],
                          "additionalProperties": true,
                          "title": "Selector (Cheerio) Capture"
                        }
                      ]
                    },
                    {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "json": {
                                "type": "string",
                                "title": "Jsonpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "json"
                            ],
                            "additionalProperties": true,
                            "title": "JSON Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "xpath": {
                                "type": "string",
                                "title": "Xpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "xpath"
                            ],
                            "additionalProperties": true,
                            "title": "XPath Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "regexp": {
                                "type": "string",
                                "title": "Regular expression"
                              },
                              "group": {
                                "description": "Named or Integer Index capturing group",
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Regex Group"
                              },
                              "flags": {
                                "type": "object",
                                "description": "Flags for the regular expression",
                                "properties": {},
                                "additionalProperties": true
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "regexp"
                            ],
                            "additionalProperties": true,
                            "title": "RegExp Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "header": {
                                "type": "string",
                                "description": "Allows you to set the name of the response header whose value you want to capture.",
                                "title": "Header name"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "header"
                            ],
                            "additionalProperties": true,
                            "title": "Header Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "selector": {
                                "type": "string",
                                "title": "Cheerio element selector"
                              },
                              "attr": {
                                "type": "string",
                                "title": "Attribute Name"
                              },
                              "index": {
                                "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                "anyOf": [
                                  {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  {
                                    "type": "string",
                                    "enum": [
                                      "last",
                                      "random"
                                    ]
                                  }
                                ],
                                "title": "Desired Index"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "selector"
                            ],
                            "additionalProperties": true,
                            "title": "Selector (Cheerio) Capture"
                          }
                        ]
                      }
                    }
                  ],
                  "title": "Capture"
                },
                "match": {
                  "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "json": {
                          "type": "string",
                          "description": "The part of the response to compare.",
                          "title": "JSON"
                        },
                        "value": {
                          "type": "string",
                          "description": "The expected value.",
                          "title": "Value"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "json": {
                            "type": "string",
                            "description": "The part of the response to compare.",
                            "title": "JSON"
                          },
                          "value": {
                            "type": "string",
                            "description": "The expected value.",
                            "title": "Value"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Match"
                },
                "auth": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "type": "string",
                      "title": "Username"
                    },
                    "pass": {
                      "type": "string",
                      "title": "Password"
                    }
                  },
                  "additionalProperties": true,
                  "title": "Basic authentication"
                },
                "beforeRequest": {
                  "description": "Functions to run before every request is sent.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "Before Request"
                },
                "afterResponse": {
                  "description": "Functions to run after every response is received.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "After Response"
                },
                "ifTrue": {
                  "type": "string",
                  "description": "Expression that controls when to execute this request.",
                  "title": "Request Condition"
                },
                "expect": {
                  "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Status Code"
                        },
                        "notStatusCode": {
                          "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Not Status Code"
                        },
                        "contentType": {
                          "type": "string",
                          "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                          "title": "Expectation: Content type"
                        },
                        "hasProperty": {
                          "type": "string",
                          "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Has Property"
                        },
                        "notHasProperty": {
                          "type": "string",
                          "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Not Has Property"
                        },
                        "equals": {
                          "type": "array",
                          "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Equals"
                        },
                        "hasHeader": {
                          "type": "string",
                          "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "title": "Expectation: Has Header"
                        },
                        "headerEquals": {
                          "type": "array",
                          "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Header Equals"
                        },
                        "matchesRegexp": {
                          "type": "string",
                          "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                          "title": "Expectation: Matches Regular Expression"
                        },
                        "cdnHit": {
                          "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Expectation: Is CDN Hit"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "statusCode": {
                            "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Status Code"
                          },
                          "notStatusCode": {
                            "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Not Status Code"
                          },
                          "contentType": {
                            "type": "string",
                            "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                            "title": "Expectation: Content type"
                          },
                          "hasProperty": {
                            "type": "string",
                            "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Has Property"
                          },
                          "notHasProperty": {
                            "type": "string",
                            "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Not Has Property"
                          },
                          "equals": {
                            "type": "array",
                            "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Equals"
                          },
                          "hasHeader": {
                            "type": "string",
                            "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "title": "Expectation: Has Header"
                          },
                          "headerEquals": {
                            "type": "array",
                            "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Header Equals"
                          },
                          "matchesRegexp": {
                            "type": "string",
                            "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                            "title": "Expectation: Matches Regular Expression"
                          },
                          "cdnHit": {
                            "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Expectation: Is CDN Hit"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Expect plugin expectations"
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": true,
              "title": "Perform a GET request"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "post": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL"
                },
                "name": {
                  "type": "string",
                  "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                  "title": "URL name"
                },
                "headers": {
                  "type": "object",
                  "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Headers"
                },
                "cookie": {
                  "type": "object",
                  "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Cookies"
                },
                "followRedirect": {
                  "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Disable redirect following"
                },
                "qs": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Query string object"
                },
                "gzip": {
                  "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                  "default": true,
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Compression"
                },
                "capture": {
                  "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                  "anyOf": [
                    {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "json": {
                              "type": "string",
                              "title": "Jsonpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "json"
                          ],
                          "additionalProperties": true,
                          "title": "JSON Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "xpath": {
                              "type": "string",
                              "title": "Xpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "xpath"
                          ],
                          "additionalProperties": true,
                          "title": "XPath Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "regexp": {
                              "type": "string",
                              "title": "Regular expression"
                            },
                            "group": {
                              "description": "Named or Integer Index capturing group",
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Regex Group"
                            },
                            "flags": {
                              "type": "object",
                              "description": "Flags for the regular expression",
                              "properties": {},
                              "additionalProperties": true
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "regexp"
                          ],
                          "additionalProperties": true,
                          "title": "RegExp Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "header": {
                              "type": "string",
                              "description": "Allows you to set the name of the response header whose value you want to capture.",
                              "title": "Header name"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "header"
                          ],
                          "additionalProperties": true,
                          "title": "Header Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "selector": {
                              "type": "string",
                              "title": "Cheerio element selector"
                            },
                            "attr": {
                              "type": "string",
                              "title": "Attribute Name"
                            },
                            "index": {
                              "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                              "anyOf": [
                                {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                },
                                {
                                  "type": "string",
                                  "enum": [
                                    "last",
                                    "random"
                                  ]
                                }
                              ],
                              "title": "Desired Index"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "selector"
                          ],
                          "additionalProperties": true,
                          "title": "Selector (Cheerio) Capture"
                        }
                      ]
                    },
                    {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "json": {
                                "type": "string",
                                "title": "Jsonpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "json"
                            ],
                            "additionalProperties": true,
                            "title": "JSON Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "xpath": {
                                "type": "string",
                                "title": "Xpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "xpath"
                            ],
                            "additionalProperties": true,
                            "title": "XPath Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "regexp": {
                                "type": "string",
                                "title": "Regular expression"
                              },
                              "group": {
                                "description": "Named or Integer Index capturing group",
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Regex Group"
                              },
                              "flags": {
                                "type": "object",
                                "description": "Flags for the regular expression",
                                "properties": {},
                                "additionalProperties": true
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "regexp"
                            ],
                            "additionalProperties": true,
                            "title": "RegExp Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "header": {
                                "type": "string",
                                "description": "Allows you to set the name of the response header whose value you want to capture.",
                                "title": "Header name"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "header"
                            ],
                            "additionalProperties": true,
                            "title": "Header Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "selector": {
                                "type": "string",
                                "title": "Cheerio element selector"
                              },
                              "attr": {
                                "type": "string",
                                "title": "Attribute Name"
                              },
                              "index": {
                                "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                "anyOf": [
                                  {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  {
                                    "type": "string",
                                    "enum": [
                                      "last",
                                      "random"
                                    ]
                                  }
                                ],
                                "title": "Desired Index"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "selector"
                            ],
                            "additionalProperties": true,
                            "title": "Selector (Cheerio) Capture"
                          }
                        ]
                      }
                    }
                  ],
                  "title": "Capture"
                },
                "match": {
                  "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "json": {
                          "type": "string",
                          "description": "The part of the response to compare.",
                          "title": "JSON"
                        },
                        "value": {
                          "type": "string",
                          "description": "The expected value.",
                          "title": "Value"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "json": {
                            "type": "string",
                            "description": "The part of the response to compare.",
                            "title": "JSON"
                          },
                          "value": {
                            "type": "string",
                            "description": "The expected value.",
                            "title": "Value"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Match"
                },
                "auth": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "type": "string",
                      "title": "Username"
                    },
                    "pass": {
                      "type": "string",
                      "title": "Password"
                    }
                  },
                  "additionalProperties": true,
                  "title": "Basic authentication"
                },
                "beforeRequest": {
                  "description": "Functions to run before every request is sent.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "Before Request"
                },
                "afterResponse": {
                  "description": "Functions to run after every response is received.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "After Response"
                },
                "ifTrue": {
                  "type": "string",
                  "description": "Expression that controls when to execute this request.",
                  "title": "Request Condition"
                },
                "expect": {
                  "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Status Code"
                        },
                        "notStatusCode": {
                          "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Not Status Code"
                        },
                        "contentType": {
                          "type": "string",
                          "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                          "title": "Expectation: Content type"
                        },
                        "hasProperty": {
                          "type": "string",
                          "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Has Property"
                        },
                        "notHasProperty": {
                          "type": "string",
                          "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Not Has Property"
                        },
                        "equals": {
                          "type": "array",
                          "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Equals"
                        },
                        "hasHeader": {
                          "type": "string",
                          "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "title": "Expectation: Has Header"
                        },
                        "headerEquals": {
                          "type": "array",
                          "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Header Equals"
                        },
                        "matchesRegexp": {
                          "type": "string",
                          "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                          "title": "Expectation: Matches Regular Expression"
                        },
                        "cdnHit": {
                          "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Expectation: Is CDN Hit"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "statusCode": {
                            "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Status Code"
                          },
                          "notStatusCode": {
                            "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Not Status Code"
                          },
                          "contentType": {
                            "type": "string",
                            "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                            "title": "Expectation: Content type"
                          },
                          "hasProperty": {
                            "type": "string",
                            "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Has Property"
                          },
                          "notHasProperty": {
                            "type": "string",
                            "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Not Has Property"
                          },
                          "equals": {
                            "type": "array",
                            "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Equals"
                          },
                          "hasHeader": {
                            "type": "string",
                            "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "title": "Expectation: Has Header"
                          },
                          "headerEquals": {
                            "type": "array",
                            "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Header Equals"
                          },
                          "matchesRegexp": {
                            "type": "string",
                            "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                            "title": "Expectation: Matches Regular Expression"
                          },
                          "cdnHit": {
                            "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Expectation: Is CDN Hit"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Expect plugin expectations"
                },
                "json": {
                  "type": [
                    "array",
                    "boolean",
                    "number",
                    "object",
                    "string",
                    "null"
                  ],
                  "title": "JSON response body"
                },
                "body": {
                  "type": [
                    "array",
                    "boolean",
                    "number",
                    "object",
                    "string",
                    "null"
                  ],
                  "title": "Raw response body"
                },
                "form": {
                  "type": "object",
                  "description": "https://www.artillery.io/docs/reference/engines/http#url-encoded-forms-applicationx-www-form-urlencoded",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Url-encoded Form"
                },
                "formData": {
                  "type": "object",
                  "description": "https://www.artillery.io/docs/reference/engines/http#multipart-forms-multipartform-data",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Multipart Forms"
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": true,
              "title": "Perform a POST request"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "put": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL"
                },
                "name": {
                  "type": "string",
                  "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                  "title": "URL name"
                },
                "headers": {
                  "type": "object",
                  "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Headers"
                },
                "cookie": {
                  "type": "object",
                  "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Cookies"
                },
                "followRedirect": {
                  "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Disable redirect following"
                },
                "qs": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Query string object"
                },
                "gzip": {
                  "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                  "default": true,
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Compression"
                },
                "capture": {
                  "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                  "anyOf": [
                    {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "json": {
                              "type": "string",
                              "title": "Jsonpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "json"
                          ],
                          "additionalProperties": true,
                          "title": "JSON Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "xpath": {
                              "type": "string",
                              "title": "Xpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "xpath"
                          ],
                          "additionalProperties": true,
                          "title": "XPath Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "regexp": {
                              "type": "string",
                              "title": "Regular expression"
                            },
                            "group": {
                              "description": "Named or Integer Index capturing group",
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Regex Group"
                            },
                            "flags": {
                              "type": "object",
                              "description": "Flags for the regular expression",
                              "properties": {},
                              "additionalProperties": true
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "regexp"
                          ],
                          "additionalProperties": true,
                          "title": "RegExp Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "header": {
                              "type": "string",
                              "description": "Allows you to set the name of the response header whose value you want to capture.",
                              "title": "Header name"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "header"
                          ],
                          "additionalProperties": true,
                          "title": "Header Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "selector": {
                              "type": "string",
                              "title": "Cheerio element selector"
                            },
                            "attr": {
                              "type": "string",
                              "title": "Attribute Name"
                            },
                            "index": {
                              "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                              "anyOf": [
                                {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                },
                                {
                                  "type": "string",
                                  "enum": [
                                    "last",
                                    "random"
                                  ]
                                }
                              ],
                              "title": "Desired Index"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "selector"
                          ],
                          "additionalProperties": true,
                          "title": "Selector (Cheerio) Capture"
                        }
                      ]
                    },
                    {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "json": {
                                "type": "string",
                                "title": "Jsonpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "json"
                            ],
                            "additionalProperties": true,
                            "title": "JSON Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "xpath": {
                                "type": "string",
                                "title": "Xpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "xpath"
                            ],
                            "additionalProperties": true,
                            "title": "XPath Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "regexp": {
                                "type": "string",
                                "title": "Regular expression"
                              },
                              "group": {
                                "description": "Named or Integer Index capturing group",
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Regex Group"
                              },
                              "flags": {
                                "type": "object",
                                "description": "Flags for the regular expression",
                                "properties": {},
                                "additionalProperties": true
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "regexp"
                            ],
                            "additionalProperties": true,
                            "title": "RegExp Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "header": {
                                "type": "string",
                                "description": "Allows you to set the name of the response header whose value you want to capture.",
                                "title": "Header name"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "header"
                            ],
                            "additionalProperties": true,
                            "title": "Header Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "selector": {
                                "type": "string",
                                "title": "Cheerio element selector"
                              },
                              "attr": {
                                "type": "string",
                                "title": "Attribute Name"
                              },
                              "index": {
                                "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                "anyOf": [
                                  {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  {
                                    "type": "string",
                                    "enum": [
                                      "last",
                                      "random"
                                    ]
                                  }
                                ],
                                "title": "Desired Index"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "selector"
                            ],
                            "additionalProperties": true,
                            "title": "Selector (Cheerio) Capture"
                          }
                        ]
                      }
                    }
                  ],
                  "title": "Capture"
                },
                "match": {
                  "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "json": {
                          "type": "string",
                          "description": "The part of the response to compare.",
                          "title": "JSON"
                        },
                        "value": {
                          "type": "string",
                          "description": "The expected value.",
                          "title": "Value"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "json": {
                            "type": "string",
                            "description": "The part of the response to compare.",
                            "title": "JSON"
                          },
                          "value": {
                            "type": "string",
                            "description": "The expected value.",
                            "title": "Value"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Match"
                },
                "auth": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "type": "string",
                      "title": "Username"
                    },
                    "pass": {
                      "type": "string",
                      "title": "Password"
                    }
                  },
                  "additionalProperties": true,
                  "title": "Basic authentication"
                },
                "beforeRequest": {
                  "description": "Functions to run before every request is sent.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "Before Request"
                },
                "afterResponse": {
                  "description": "Functions to run after every response is received.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "After Response"
                },
                "ifTrue": {
                  "type": "string",
                  "description": "Expression that controls when to execute this request.",
                  "title": "Request Condition"
                },
                "expect": {
                  "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Status Code"
                        },
                        "notStatusCode": {
                          "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Not Status Code"
                        },
                        "contentType": {
                          "type": "string",
                          "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                          "title": "Expectation: Content type"
                        },
                        "hasProperty": {
                          "type": "string",
                          "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Has Property"
                        },
                        "notHasProperty": {
                          "type": "string",
                          "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Not Has Property"
                        },
                        "equals": {
                          "type": "array",
                          "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Equals"
                        },
                        "hasHeader": {
                          "type": "string",
                          "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "title": "Expectation: Has Header"
                        },
                        "headerEquals": {
                          "type": "array",
                          "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Header Equals"
                        },
                        "matchesRegexp": {
                          "type": "string",
                          "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                          "title": "Expectation: Matches Regular Expression"
                        },
                        "cdnHit": {
                          "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Expectation: Is CDN Hit"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "statusCode": {
                            "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Status Code"
                          },
                          "notStatusCode": {
                            "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Not Status Code"
                          },
                          "contentType": {
                            "type": "string",
                            "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                            "title": "Expectation: Content type"
                          },
                          "hasProperty": {
                            "type": "string",
                            "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Has Property"
                          },
                          "notHasProperty": {
                            "type": "string",
                            "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Not Has Property"
                          },
                          "equals": {
                            "type": "array",
                            "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Equals"
                          },
                          "hasHeader": {
                            "type": "string",
                            "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "title": "Expectation: Has Header"
                          },
                          "headerEquals": {
                            "type": "array",
                            "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Header Equals"
                          },
                          "matchesRegexp": {
                            "type": "string",
                            "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                            "title": "Expectation: Matches Regular Expression"
                          },
                          "cdnHit": {
                            "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Expectation: Is CDN Hit"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Expect plugin expectations"
                },
                "json": {
                  "type": [
                    "array",
                    "boolean",
                    "number",
                    "object",
                    "string",
                    "null"
                  ],
                  "title": "JSON response body"
                },
                "body": {
                  "type": [
                    "array",
                    "boolean",
                    "number",
                    "object",
                    "string",
                    "null"
                  ],
                  "title": "Raw response body"
                },
                "form": {
                  "type": "object",
                  "description": "https://www.artillery.io/docs/reference/engines/http#url-encoded-forms-applicationx-www-form-urlencoded",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Url-encoded Form"
                },
                "formData": {
                  "type": "object",
                  "description": "https://www.artillery.io/docs/reference/engines/http#multipart-forms-multipartform-data",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Multipart Forms"
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": true,
              "title": "Perform a PUT request"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "patch": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL"
                },
                "name": {
                  "type": "string",
                  "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                  "title": "URL name"
                },
                "headers": {
                  "type": "object",
                  "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Headers"
                },
                "cookie": {
                  "type": "object",
                  "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Cookies"
                },
                "followRedirect": {
                  "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Disable redirect following"
                },
                "qs": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Query string object"
                },
                "gzip": {
                  "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                  "default": true,
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Compression"
                },
                "capture": {
                  "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                  "anyOf": [
                    {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "json": {
                              "type": "string",
                              "title": "Jsonpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "json"
                          ],
                          "additionalProperties": true,
                          "title": "JSON Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "xpath": {
                              "type": "string",
                              "title": "Xpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "xpath"
                          ],
                          "additionalProperties": true,
                          "title": "XPath Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "regexp": {
                              "type": "string",
                              "title": "Regular expression"
                            },
                            "group": {
                              "description": "Named or Integer Index capturing group",
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Regex Group"
                            },
                            "flags": {
                              "type": "object",
                              "description": "Flags for the regular expression",
                              "properties": {},
                              "additionalProperties": true
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "regexp"
                          ],
                          "additionalProperties": true,
                          "title": "RegExp Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "header": {
                              "type": "string",
                              "description": "Allows you to set the name of the response header whose value you want to capture.",
                              "title": "Header name"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "header"
                          ],
                          "additionalProperties": true,
                          "title": "Header Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "selector": {
                              "type": "string",
                              "title": "Cheerio element selector"
                            },
                            "attr": {
                              "type": "string",
                              "title": "Attribute Name"
                            },
                            "index": {
                              "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                              "anyOf": [
                                {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                },
                                {
                                  "type": "string",
                                  "enum": [
                                    "last",
                                    "random"
                                  ]
                                }
                              ],
                              "title": "Desired Index"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "selector"
                          ],
                          "additionalProperties": true,
                          "title": "Selector (Cheerio) Capture"
                        }
                      ]
                    },
                    {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "json": {
                                "type": "string",
                                "title": "Jsonpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "json"
                            ],
                            "additionalProperties": true,
                            "title": "JSON Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "xpath": {
                                "type": "string",
                                "title": "Xpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "xpath"
                            ],
                            "additionalProperties": true,
                            "title": "XPath Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "regexp": {
                                "type": "string",
                                "title": "Regular expression"
                              },
                              "group": {
                                "description": "Named or Integer Index capturing group",
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Regex Group"
                              },
                              "flags": {
                                "type": "object",
                                "description": "Flags for the regular expression",
                                "properties": {},
                                "additionalProperties": true
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "regexp"
                            ],
                            "additionalProperties": true,
                            "title": "RegExp Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "header": {
                                "type": "string",
                                "description": "Allows you to set the name of the response header whose value you want to capture.",
                                "title": "Header name"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "header"
                            ],
                            "additionalProperties": true,
                            "title": "Header Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "selector": {
                                "type": "string",
                                "title": "Cheerio element selector"
                              },
                              "attr": {
                                "type": "string",
                                "title": "Attribute Name"
                              },
                              "index": {
                                "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                "anyOf": [
                                  {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  {
                                    "type": "string",
                                    "enum": [
                                      "last",
                                      "random"
                                    ]
                                  }
                                ],
                                "title": "Desired Index"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "selector"
                            ],
                            "additionalProperties": true,
                            "title": "Selector (Cheerio) Capture"
                          }
                        ]
                      }
                    }
                  ],
                  "title": "Capture"
                },
                "match": {
                  "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "json": {
                          "type": "string",
                          "description": "The part of the response to compare.",
                          "title": "JSON"
                        },
                        "value": {
                          "type": "string",
                          "description": "The expected value.",
                          "title": "Value"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "json": {
                            "type": "string",
                            "description": "The part of the response to compare.",
                            "title": "JSON"
                          },
                          "value": {
                            "type": "string",
                            "description": "The expected value.",
                            "title": "Value"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Match"
                },
                "auth": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "type": "string",
                      "title": "Username"
                    },
                    "pass": {
                      "type": "string",
                      "title": "Password"
                    }
                  },
                  "additionalProperties": true,
                  "title": "Basic authentication"
                },
                "beforeRequest": {
                  "description": "Functions to run before every request is sent.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "Before Request"
                },
                "afterResponse": {
                  "description": "Functions to run after every response is received.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "After Response"
                },
                "ifTrue": {
                  "type": "string",
                  "description": "Expression that controls when to execute this request.",
                  "title": "Request Condition"
                },
                "expect": {
                  "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Status Code"
                        },
                        "notStatusCode": {
                          "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Not Status Code"
                        },
                        "contentType": {
                          "type": "string",
                          "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                          "title": "Expectation: Content type"
                        },
                        "hasProperty": {
                          "type": "string",
                          "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Has Property"
                        },
                        "notHasProperty": {
                          "type": "string",
                          "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Not Has Property"
                        },
                        "equals": {
                          "type": "array",
                          "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Equals"
                        },
                        "hasHeader": {
                          "type": "string",
                          "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "title": "Expectation: Has Header"
                        },
                        "headerEquals": {
                          "type": "array",
                          "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Header Equals"
                        },
                        "matchesRegexp": {
                          "type": "string",
                          "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                          "title": "Expectation: Matches Regular Expression"
                        },
                        "cdnHit": {
                          "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Expectation: Is CDN Hit"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "statusCode": {
                            "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Status Code"
                          },
                          "notStatusCode": {
                            "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Not Status Code"
                          },
                          "contentType": {
                            "type": "string",
                            "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                            "title": "Expectation: Content type"
                          },
                          "hasProperty": {
                            "type": "string",
                            "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Has Property"
                          },
                          "notHasProperty": {
                            "type": "string",
                            "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Not Has Property"
                          },
                          "equals": {
                            "type": "array",
                            "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Equals"
                          },
                          "hasHeader": {
                            "type": "string",
                            "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "title": "Expectation: Has Header"
                          },
                          "headerEquals": {
                            "type": "array",
                            "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Header Equals"
                          },
                          "matchesRegexp": {
                            "type": "string",
                            "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                            "title": "Expectation: Matches Regular Expression"
                          },
                          "cdnHit": {
                            "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Expectation: Is CDN Hit"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Expect plugin expectations"
                },
                "json": {
                  "type": [
                    "array",
                    "boolean",
                    "number",
                    "object",
                    "string",
                    "null"
                  ],
                  "title": "JSON response body"
                },
                "body": {
                  "type": [
                    "array",
                    "boolean",
                    "number",
                    "object",
                    "string",
                    "null"
                  ],
                  "title": "Raw response body"
                },
                "form": {
                  "type": "object",
                  "description": "https://www.artillery.io/docs/reference/engines/http#url-encoded-forms-applicationx-www-form-urlencoded",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Url-encoded Form"
                },
                "formData": {
                  "type": "object",
                  "description": "https://www.artillery.io/docs/reference/engines/http#multipart-forms-multipartform-data",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Multipart Forms"
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": true,
              "title": "Perform a PATCH request"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "delete": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL"
                },
                "name": {
                  "type": "string",
                  "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                  "title": "URL name"
                },
                "headers": {
                  "type": "object",
                  "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Headers"
                },
                "cookie": {
                  "type": "object",
                  "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Cookies"
                },
                "followRedirect": {
                  "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Disable redirect following"
                },
                "qs": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Query string object"
                },
                "gzip": {
                  "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                  "default": true,
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Compression"
                },
                "capture": {
                  "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                  "anyOf": [
                    {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "json": {
                              "type": "string",
                              "title": "Jsonpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "json"
                          ],
                          "additionalProperties": true,
                          "title": "JSON Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "xpath": {
                              "type": "string",
                              "title": "Xpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "xpath"
                          ],
                          "additionalProperties": true,
                          "title": "XPath Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "regexp": {
                              "type": "string",
                              "title": "Regular expression"
                            },
                            "group": {
                              "description": "Named or Integer Index capturing group",
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Regex Group"
                            },
                            "flags": {
                              "type": "object",
                              "description": "Flags for the regular expression",
                              "properties": {},
                              "additionalProperties": true
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "regexp"
                          ],
                          "additionalProperties": true,
                          "title": "RegExp Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "header": {
                              "type": "string",
                              "description": "Allows you to set the name of the response header whose value you want to capture.",
                              "title": "Header name"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "header"
                          ],
                          "additionalProperties": true,
                          "title": "Header Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "selector": {
                              "type": "string",
                              "title": "Cheerio element selector"
                            },
                            "attr": {
                              "type": "string",
                              "title": "Attribute Name"
                            },
                            "index": {
                              "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                              "anyOf": [
                                {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                },
                                {
                                  "type": "string",
                                  "enum": [
                                    "last",
                                    "random"
                                  ]
                                }
                              ],
                              "title": "Desired Index"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "selector"
                          ],
                          "additionalProperties": true,
                          "title": "Selector (Cheerio) Capture"
                        }
                      ]
                    },
                    {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "json": {
                                "type": "string",
                                "title": "Jsonpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "json"
                            ],
                            "additionalProperties": true,
                            "title": "JSON Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "xpath": {
                                "type": "string",
                                "title": "Xpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "xpath"
                            ],
                            "additionalProperties": true,
                            "title": "XPath Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "regexp": {
                                "type": "string",
                                "title": "Regular expression"
                              },
                              "group": {
                                "description": "Named or Integer Index capturing group",
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Regex Group"
                              },
                              "flags": {
                                "type": "object",
                                "description": "Flags for the regular expression",
                                "properties": {},
                                "additionalProperties": true
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "regexp"
                            ],
                            "additionalProperties": true,
                            "title": "RegExp Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "header": {
                                "type": "string",
                                "description": "Allows you to set the name of the response header whose value you want to capture.",
                                "title": "Header name"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "header"
                            ],
                            "additionalProperties": true,
                            "title": "Header Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "selector": {
                                "type": "string",
                                "title": "Cheerio element selector"
                              },
                              "attr": {
                                "type": "string",
                                "title": "Attribute Name"
                              },
                              "index": {
                                "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                "anyOf": [
                                  {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  {
                                    "type": "string",
                                    "enum": [
                                      "last",
                                      "random"
                                    ]
                                  }
                                ],
                                "title": "Desired Index"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "selector"
                            ],
                            "additionalProperties": true,
                            "title": "Selector (Cheerio) Capture"
                          }
                        ]
                      }
                    }
                  ],
                  "title": "Capture"
                },
                "match": {
                  "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "json": {
                          "type": "string",
                          "description": "The part of the response to compare.",
                          "title": "JSON"
                        },
                        "value": {
                          "type": "string",
                          "description": "The expected value.",
                          "title": "Value"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "json": {
                            "type": "string",
                            "description": "The part of the response to compare.",
                            "title": "JSON"
                          },
                          "value": {
                            "type": "string",
                            "description": "The expected value.",
                            "title": "Value"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Match"
                },
                "auth": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "type": "string",
                      "title": "Username"
                    },
                    "pass": {
                      "type": "string",
                      "title": "Password"
                    }
                  },
                  "additionalProperties": true,
                  "title": "Basic authentication"
                },
                "beforeRequest": {
                  "description": "Functions to run before every request is sent.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "Before Request"
                },
                "afterResponse": {
                  "description": "Functions to run after every response is received.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "After Response"
                },
                "ifTrue": {
                  "type": "string",
                  "description": "Expression that controls when to execute this request.",
                  "title": "Request Condition"
                },
                "expect": {
                  "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Status Code"
                        },
                        "notStatusCode": {
                          "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Not Status Code"
                        },
                        "contentType": {
                          "type": "string",
                          "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                          "title": "Expectation: Content type"
                        },
                        "hasProperty": {
                          "type": "string",
                          "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Has Property"
                        },
                        "notHasProperty": {
                          "type": "string",
                          "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Not Has Property"
                        },
                        "equals": {
                          "type": "array",
                          "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Equals"
                        },
                        "hasHeader": {
                          "type": "string",
                          "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "title": "Expectation: Has Header"
                        },
                        "headerEquals": {
                          "type": "array",
                          "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Header Equals"
                        },
                        "matchesRegexp": {
                          "type": "string",
                          "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                          "title": "Expectation: Matches Regular Expression"
                        },
                        "cdnHit": {
                          "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Expectation: Is CDN Hit"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "statusCode": {
                            "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Status Code"
                          },
                          "notStatusCode": {
                            "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Not Status Code"
                          },
                          "contentType": {
                            "type": "string",
                            "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                            "title": "Expectation: Content type"
                          },
                          "hasProperty": {
                            "type": "string",
                            "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Has Property"
                          },
                          "notHasProperty": {
                            "type": "string",
                            "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Not Has Property"
                          },
                          "equals": {
                            "type": "array",
                            "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Equals"
                          },
                          "hasHeader": {
                            "type": "string",
                            "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "title": "Expectation: Has Header"
                          },
                          "headerEquals": {
                            "type": "array",
                            "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Header Equals"
                          },
                          "matchesRegexp": {
                            "type": "string",
                            "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                            "title": "Expectation: Matches Regular Expression"
                          },
                          "cdnHit": {
                            "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Expectation: Is CDN Hit"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Expect plugin expectations"
                },
                "json": {
                  "type": [
                    "array",
                    "boolean",
                    "number",
                    "object",
                    "string",
                    "null"
                  ],
                  "title": "JSON response body"
                },
                "body": {
                  "type": [
                    "array",
                    "boolean",
                    "number",
                    "object",
                    "string",
                    "null"
                  ],
                  "title": "Raw response body"
                },
                "form": {
                  "type": "object",
                  "description": "https://www.artillery.io/docs/reference/engines/http#url-encoded-forms-applicationx-www-form-urlencoded",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Url-encoded Form"
                },
                "formData": {
                  "type": "object",
                  "description": "https://www.artillery.io/docs/reference/engines/http#multipart-forms-multipartform-data",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Multipart Forms"
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": true,
              "title": "Perform a DELETE request"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "loop": {
              "type": "array",
              "items": {
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "function": {
                        "type": "string",
                        "description": "Function name to run.",
                        "title": "Function"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "log": {
                        "type": "string",
                        "description": "Print given message to the console.",
                        "title": "Log"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "think": {
                        "description": "Pause virtual user for the given duration (in seconds).",
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "string"
                          }
                        ],
                        "title": "Think time"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "get": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "title": "URL"
                          },
                          "name": {
                            "type": "string",
                            "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                            "title": "URL name"
                          },
                          "headers": {
                            "type": "object",
                            "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Headers"
                          },
                          "cookie": {
                            "type": "object",
                            "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Cookies"
                          },
                          "followRedirect": {
                            "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Disable redirect following"
                          },
                          "qs": {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Query string object"
                          },
                          "gzip": {
                            "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                            "default": true,
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Compression"
                          },
                          "capture": {
                            "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                            "anyOf": [
                              {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "json": {
                                        "type": "string",
                                        "title": "Jsonpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "json"
                                    ],
                                    "additionalProperties": true,
                                    "title": "JSON Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "xpath": {
                                        "type": "string",
                                        "title": "Xpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "xpath"
                                    ],
                                    "additionalProperties": true,
                                    "title": "XPath Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "regexp": {
                                        "type": "string",
                                        "title": "Regular expression"
                                      },
                                      "group": {
                                        "description": "Named or Integer Index capturing group",
                                        "anyOf": [
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Regex Group"
                                      },
                                      "flags": {
                                        "type": "object",
                                        "description": "Flags for the regular expression",
                                        "properties": {},
                                        "additionalProperties": true
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "regexp"
                                    ],
                                    "additionalProperties": true,
                                    "title": "RegExp Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "header": {
                                        "type": "string",
                                        "description": "Allows you to set the name of the response header whose value you want to capture.",
                                        "title": "Header name"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "header"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Header Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "selector": {
                                        "type": "string",
                                        "title": "Cheerio element selector"
                                      },
                                      "attr": {
                                        "type": "string",
                                        "title": "Attribute Name"
                                      },
                                      "index": {
                                        "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                        "anyOf": [
                                          {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          {
                                            "type": "string",
                                            "enum": [
                                              "last",
                                              "random"
                                            ]
                                          }
                                        ],
                                        "title": "Desired Index"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "selector"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Selector (Cheerio) Capture"
                                  }
                                ]
                              },
                              {
                                "type": "array",
                                "items": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "json": {
                                          "type": "string",
                                          "title": "Jsonpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "json"
                                      ],
                                      "additionalProperties": true,
                                      "title": "JSON Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "xpath": {
                                          "type": "string",
                                          "title": "Xpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "xpath"
                                      ],
                                      "additionalProperties": true,
                                      "title": "XPath Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "regexp": {
                                          "type": "string",
                                          "title": "Regular expression"
                                        },
                                        "group": {
                                          "description": "Named or Integer Index capturing group",
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Regex Group"
                                        },
                                        "flags": {
                                          "type": "object",
                                          "description": "Flags for the regular expression",
                                          "properties": {},
                                          "additionalProperties": true
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "regexp"
                                      ],
                                      "additionalProperties": true,
                                      "title": "RegExp Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "header": {
                                          "type": "string",
                                          "description": "Allows you to set the name of the response header whose value you want to capture.",
                                          "title": "Header name"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "header"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Header Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "selector": {
                                          "type": "string",
                                          "title": "Cheerio element selector"
                                        },
                                        "attr": {
                                          "type": "string",
                                          "title": "Attribute Name"
                                        },
                                        "index": {
                                          "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                          "anyOf": [
                                            {
                                              "anyOf": [
                                                {
                                                  "type": "number"
                                                },
                                                {
                                                  "type": "string"
                                                }
                                              ]
                                            },
                                            {
                                              "type": "string",
                                              "enum": [
                                                "last",
                                                "random"
                                              ]
                                            }
                                          ],
                                          "title": "Desired Index"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "selector"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Selector (Cheerio) Capture"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Capture"
                          },
                          "match": {
                            "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "json": {
                                    "type": "string",
                                    "description": "The part of the response to compare.",
                                    "title": "JSON"
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The expected value.",
                                    "title": "Value"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "json": {
                                      "type": "string",
                                      "description": "The part of the response to compare.",
                                      "title": "JSON"
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The expected value.",
                                      "title": "Value"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Match"
                          },
                          "auth": {
                            "type": "object",
                            "properties": {
                              "user": {
                                "type": "string",
                                "title": "Username"
                              },
                              "pass": {
                                "type": "string",
                                "title": "Password"
                              }
                            },
                            "additionalProperties": true,
                            "title": "Basic authentication"
                          },
                          "beforeRequest": {
                            "description": "Functions to run before every request is sent.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "Before Request"
                          },
                          "afterResponse": {
                            "description": "Functions to run after every response is received.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "After Response"
                          },
                          "ifTrue": {
                            "type": "string",
                            "description": "Expression that controls when to execute this request.",
                            "title": "Request Condition"
                          },
                          "expect": {
                            "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "statusCode": {
                                    "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Status Code"
                                  },
                                  "notStatusCode": {
                                    "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Not Status Code"
                                  },
                                  "contentType": {
                                    "type": "string",
                                    "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                    "title": "Expectation: Content type"
                                  },
                                  "hasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Has Property"
                                  },
                                  "notHasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Not Has Property"
                                  },
                                  "equals": {
                                    "type": "array",
                                    "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Equals"
                                  },
                                  "hasHeader": {
                                    "type": "string",
                                    "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "title": "Expectation: Has Header"
                                  },
                                  "headerEquals": {
                                    "type": "array",
                                    "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Header Equals"
                                  },
                                  "matchesRegexp": {
                                    "type": "string",
                                    "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                    "title": "Expectation: Matches Regular Expression"
                                  },
                                  "cdnHit": {
                                    "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ],
                                    "title": "Expectation: Is CDN Hit"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "statusCode": {
                                      "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Status Code"
                                    },
                                    "notStatusCode": {
                                      "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Not Status Code"
                                    },
                                    "contentType": {
                                      "type": "string",
                                      "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                      "title": "Expectation: Content type"
                                    },
                                    "hasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Has Property"
                                    },
                                    "notHasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Not Has Property"
                                    },
                                    "equals": {
                                      "type": "array",
                                      "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Equals"
                                    },
                                    "hasHeader": {
                                      "type": "string",
                                      "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "title": "Expectation: Has Header"
                                    },
                                    "headerEquals": {
                                      "type": "array",
                                      "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Header Equals"
                                    },
                                    "matchesRegexp": {
                                      "type": "string",
                                      "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                      "title": "Expectation: Matches Regular Expression"
                                    },
                                    "cdnHit": {
                                      "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                      "anyOf": [
                                        {
                                          "type": "boolean"
                                        },
                                        {
                                          "type": "string"
                                        }
                                      ],
                                      "title": "Expectation: Is CDN Hit"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Expect plugin expectations"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "additionalProperties": true,
                        "title": "Perform a GET request"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "post": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "title": "URL"
                          },
                          "name": {
                            "type": "string",
                            "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                            "title": "URL name"
                          },
                          "headers": {
                            "type": "object",
                            "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Headers"
                          },
                          "cookie": {
                            "type": "object",
                            "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Cookies"
                          },
                          "followRedirect": {
                            "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Disable redirect following"
                          },
                          "qs": {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Query string object"
                          },
                          "gzip": {
                            "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                            "default": true,
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Compression"
                          },
                          "capture": {
                            "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                            "anyOf": [
                              {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "json": {
                                        "type": "string",
                                        "title": "Jsonpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "json"
                                    ],
                                    "additionalProperties": true,
                                    "title": "JSON Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "xpath": {
                                        "type": "string",
                                        "title": "Xpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "xpath"
                                    ],
                                    "additionalProperties": true,
                                    "title": "XPath Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "regexp": {
                                        "type": "string",
                                        "title": "Regular expression"
                                      },
                                      "group": {
                                        "description": "Named or Integer Index capturing group",
                                        "anyOf": [
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Regex Group"
                                      },
                                      "flags": {
                                        "type": "object",
                                        "description": "Flags for the regular expression",
                                        "properties": {},
                                        "additionalProperties": true
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "regexp"
                                    ],
                                    "additionalProperties": true,
                                    "title": "RegExp Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "header": {
                                        "type": "string",
                                        "description": "Allows you to set the name of the response header whose value you want to capture.",
                                        "title": "Header name"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "header"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Header Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "selector": {
                                        "type": "string",
                                        "title": "Cheerio element selector"
                                      },
                                      "attr": {
                                        "type": "string",
                                        "title": "Attribute Name"
                                      },
                                      "index": {
                                        "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                        "anyOf": [
                                          {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          {
                                            "type": "string",
                                            "enum": [
                                              "last",
                                              "random"
                                            ]
                                          }
                                        ],
                                        "title": "Desired Index"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "selector"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Selector (Cheerio) Capture"
                                  }
                                ]
                              },
                              {
                                "type": "array",
                                "items": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "json": {
                                          "type": "string",
                                          "title": "Jsonpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "json"
                                      ],
                                      "additionalProperties": true,
                                      "title": "JSON Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "xpath": {
                                          "type": "string",
                                          "title": "Xpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "xpath"
                                      ],
                                      "additionalProperties": true,
                                      "title": "XPath Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "regexp": {
                                          "type": "string",
                                          "title": "Regular expression"
                                        },
                                        "group": {
                                          "description": "Named or Integer Index capturing group",
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Regex Group"
                                        },
                                        "flags": {
                                          "type": "object",
                                          "description": "Flags for the regular expression",
                                          "properties": {},
                                          "additionalProperties": true
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "regexp"
                                      ],
                                      "additionalProperties": true,
                                      "title": "RegExp Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "header": {
                                          "type": "string",
                                          "description": "Allows you to set the name of the response header whose value you want to capture.",
                                          "title": "Header name"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "header"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Header Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "selector": {
                                          "type": "string",
                                          "title": "Cheerio element selector"
                                        },
                                        "attr": {
                                          "type": "string",
                                          "title": "Attribute Name"
                                        },
                                        "index": {
                                          "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                          "anyOf": [
                                            {
                                              "anyOf": [
                                                {
                                                  "type": "number"
                                                },
                                                {
                                                  "type": "string"
                                                }
                                              ]
                                            },
                                            {
                                              "type": "string",
                                              "enum": [
                                                "last",
                                                "random"
                                              ]
                                            }
                                          ],
                                          "title": "Desired Index"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "selector"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Selector (Cheerio) Capture"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Capture"
                          },
                          "match": {
                            "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "json": {
                                    "type": "string",
                                    "description": "The part of the response to compare.",
                                    "title": "JSON"
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The expected value.",
                                    "title": "Value"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "json": {
                                      "type": "string",
                                      "description": "The part of the response to compare.",
                                      "title": "JSON"
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The expected value.",
                                      "title": "Value"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Match"
                          },
                          "auth": {
                            "type": "object",
                            "properties": {
                              "user": {
                                "type": "string",
                                "title": "Username"
                              },
                              "pass": {
                                "type": "string",
                                "title": "Password"
                              }
                            },
                            "additionalProperties": true,
                            "title": "Basic authentication"
                          },
                          "beforeRequest": {
                            "description": "Functions to run before every request is sent.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "Before Request"
                          },
                          "afterResponse": {
                            "description": "Functions to run after every response is received.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "After Response"
                          },
                          "ifTrue": {
                            "type": "string",
                            "description": "Expression that controls when to execute this request.",
                            "title": "Request Condition"
                          },
                          "expect": {
                            "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "statusCode": {
                                    "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Status Code"
                                  },
                                  "notStatusCode": {
                                    "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Not Status Code"
                                  },
                                  "contentType": {
                                    "type": "string",
                                    "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                    "title": "Expectation: Content type"
                                  },
                                  "hasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Has Property"
                                  },
                                  "notHasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Not Has Property"
                                  },
                                  "equals": {
                                    "type": "array",
                                    "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Equals"
                                  },
                                  "hasHeader": {
                                    "type": "string",
                                    "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "title": "Expectation: Has Header"
                                  },
                                  "headerEquals": {
                                    "type": "array",
                                    "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Header Equals"
                                  },
                                  "matchesRegexp": {
                                    "type": "string",
                                    "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                    "title": "Expectation: Matches Regular Expression"
                                  },
                                  "cdnHit": {
                                    "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ],
                                    "title": "Expectation: Is CDN Hit"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "statusCode": {
                                      "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Status Code"
                                    },
                                    "notStatusCode": {
                                      "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Not Status Code"
                                    },
                                    "contentType": {
                                      "type": "string",
                                      "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                      "title": "Expectation: Content type"
                                    },
                                    "hasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Has Property"
                                    },
                                    "notHasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Not Has Property"
                                    },
                                    "equals": {
                                      "type": "array",
                                      "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Equals"
                                    },
                                    "hasHeader": {
                                      "type": "string",
                                      "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "title": "Expectation: Has Header"
                                    },
                                    "headerEquals": {
                                      "type": "array",
                                      "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Header Equals"
                                    },
                                    "matchesRegexp": {
                                      "type": "string",
                                      "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                      "title": "Expectation: Matches Regular Expression"
                                    },
                                    "cdnHit": {
                                      "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                      "anyOf": [
                                        {
                                          "type": "boolean"
                                        },
                                        {
                                          "type": "string"
                                        }
                                      ],
                                      "title": "Expectation: Is CDN Hit"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Expect plugin expectations"
                          },
                          "json": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ],
                            "title": "JSON response body"
                          },
                          "body": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ],
                            "title": "Raw response body"
                          },
                          "form": {
                            "type": "object",
                            "description": "https://www.artillery.io/docs/reference/engines/http#url-encoded-forms-applicationx-www-form-urlencoded",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Url-encoded Form"
                          },
                          "formData": {
                            "type": "object",
                            "description": "https://www.artillery.io/docs/reference/engines/http#multipart-forms-multipartform-data",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Multipart Forms"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "additionalProperties": true,
                        "title": "Perform a POST request"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "put": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "title": "URL"
                          },
                          "name": {
                            "type": "string",
                            "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                            "title": "URL name"
                          },
                          "headers": {
                            "type": "object",
                            "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Headers"
                          },
                          "cookie": {
                            "type": "object",
                            "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Cookies"
                          },
                          "followRedirect": {
                            "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Disable redirect following"
                          },
                          "qs": {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Query string object"
                          },
                          "gzip": {
                            "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                            "default": true,
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Compression"
                          },
                          "capture": {
                            "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                            "anyOf": [
                              {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "json": {
                                        "type": "string",
                                        "title": "Jsonpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "json"
                                    ],
                                    "additionalProperties": true,
                                    "title": "JSON Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "xpath": {
                                        "type": "string",
                                        "title": "Xpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "xpath"
                                    ],
                                    "additionalProperties": true,
                                    "title": "XPath Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "regexp": {
                                        "type": "string",
                                        "title": "Regular expression"
                                      },
                                      "group": {
                                        "description": "Named or Integer Index capturing group",
                                        "anyOf": [
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Regex Group"
                                      },
                                      "flags": {
                                        "type": "object",
                                        "description": "Flags for the regular expression",
                                        "properties": {},
                                        "additionalProperties": true
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "regexp"
                                    ],
                                    "additionalProperties": true,
                                    "title": "RegExp Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "header": {
                                        "type": "string",
                                        "description": "Allows you to set the name of the response header whose value you want to capture.",
                                        "title": "Header name"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "header"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Header Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "selector": {
                                        "type": "string",
                                        "title": "Cheerio element selector"
                                      },
                                      "attr": {
                                        "type": "string",
                                        "title": "Attribute Name"
                                      },
                                      "index": {
                                        "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                        "anyOf": [
                                          {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          {
                                            "type": "string",
                                            "enum": [
                                              "last",
                                              "random"
                                            ]
                                          }
                                        ],
                                        "title": "Desired Index"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "selector"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Selector (Cheerio) Capture"
                                  }
                                ]
                              },
                              {
                                "type": "array",
                                "items": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "json": {
                                          "type": "string",
                                          "title": "Jsonpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "json"
                                      ],
                                      "additionalProperties": true,
                                      "title": "JSON Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "xpath": {
                                          "type": "string",
                                          "title": "Xpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "xpath"
                                      ],
                                      "additionalProperties": true,
                                      "title": "XPath Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "regexp": {
                                          "type": "string",
                                          "title": "Regular expression"
                                        },
                                        "group": {
                                          "description": "Named or Integer Index capturing group",
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Regex Group"
                                        },
                                        "flags": {
                                          "type": "object",
                                          "description": "Flags for the regular expression",
                                          "properties": {},
                                          "additionalProperties": true
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "regexp"
                                      ],
                                      "additionalProperties": true,
                                      "title": "RegExp Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "header": {
                                          "type": "string",
                                          "description": "Allows you to set the name of the response header whose value you want to capture.",
                                          "title": "Header name"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "header"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Header Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "selector": {
                                          "type": "string",
                                          "title": "Cheerio element selector"
                                        },
                                        "attr": {
                                          "type": "string",
                                          "title": "Attribute Name"
                                        },
                                        "index": {
                                          "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                          "anyOf": [
                                            {
                                              "anyOf": [
                                                {
                                                  "type": "number"
                                                },
                                                {
                                                  "type": "string"
                                                }
                                              ]
                                            },
                                            {
                                              "type": "string",
                                              "enum": [
                                                "last",
                                                "random"
                                              ]
                                            }
                                          ],
                                          "title": "Desired Index"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "selector"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Selector (Cheerio) Capture"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Capture"
                          },
                          "match": {
                            "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "json": {
                                    "type": "string",
                                    "description": "The part of the response to compare.",
                                    "title": "JSON"
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The expected value.",
                                    "title": "Value"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "json": {
                                      "type": "string",
                                      "description": "The part of the response to compare.",
                                      "title": "JSON"
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The expected value.",
                                      "title": "Value"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Match"
                          },
                          "auth": {
                            "type": "object",
                            "properties": {
                              "user": {
                                "type": "string",
                                "title": "Username"
                              },
                              "pass": {
                                "type": "string",
                                "title": "Password"
                              }
                            },
                            "additionalProperties": true,
                            "title": "Basic authentication"
                          },
                          "beforeRequest": {
                            "description": "Functions to run before every request is sent.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "Before Request"
                          },
                          "afterResponse": {
                            "description": "Functions to run after every response is received.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "After Response"
                          },
                          "ifTrue": {
                            "type": "string",
                            "description": "Expression that controls when to execute this request.",
                            "title": "Request Condition"
                          },
                          "expect": {
                            "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "statusCode": {
                                    "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Status Code"
                                  },
                                  "notStatusCode": {
                                    "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Not Status Code"
                                  },
                                  "contentType": {
                                    "type": "string",
                                    "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                    "title": "Expectation: Content type"
                                  },
                                  "hasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Has Property"
                                  },
                                  "notHasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Not Has Property"
                                  },
                                  "equals": {
                                    "type": "array",
                                    "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Equals"
                                  },
                                  "hasHeader": {
                                    "type": "string",
                                    "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "title": "Expectation: Has Header"
                                  },
                                  "headerEquals": {
                                    "type": "array",
                                    "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Header Equals"
                                  },
                                  "matchesRegexp": {
                                    "type": "string",
                                    "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                    "title": "Expectation: Matches Regular Expression"
                                  },
                                  "cdnHit": {
                                    "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ],
                                    "title": "Expectation: Is CDN Hit"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "statusCode": {
                                      "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Status Code"
                                    },
                                    "notStatusCode": {
                                      "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Not Status Code"
                                    },
                                    "contentType": {
                                      "type": "string",
                                      "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                      "title": "Expectation: Content type"
                                    },
                                    "hasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Has Property"
                                    },
                                    "notHasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Not Has Property"
                                    },
                                    "equals": {
                                      "type": "array",
                                      "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Equals"
                                    },
                                    "hasHeader": {
                                      "type": "string",
                                      "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "title": "Expectation: Has Header"
                                    },
                                    "headerEquals": {
                                      "type": "array",
                                      "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Header Equals"
                                    },
                                    "matchesRegexp": {
                                      "type": "string",
                                      "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                      "title": "Expectation: Matches Regular Expression"
                                    },
                                    "cdnHit": {
                                      "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                      "anyOf": [
                                        {
                                          "type": "boolean"
                                        },
                                        {
                                          "type": "string"
                                        }
                                      ],
                                      "title": "Expectation: Is CDN Hit"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Expect plugin expectations"
                          },
                          "json": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ],
                            "title": "JSON response body"
                          },
                          "body": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ],
                            "title": "Raw response body"
                          },
                          "form": {
                            "type": "object",
                            "description": "https://www.artillery.io/docs/reference/engines/http#url-encoded-forms-applicationx-www-form-urlencoded",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Url-encoded Form"
                          },
                          "formData": {
                            "type": "object",
                            "description": "https://www.artillery.io/docs/reference/engines/http#multipart-forms-multipartform-data",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Multipart Forms"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "additionalProperties": true,
                        "title": "Perform a PUT request"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "patch": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "title": "URL"
                          },
                          "name": {
                            "type": "string",
                            "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                            "title": "URL name"
                          },
                          "headers": {
                            "type": "object",
                            "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Headers"
                          },
                          "cookie": {
                            "type": "object",
                            "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Cookies"
                          },
                          "followRedirect": {
                            "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Disable redirect following"
                          },
                          "qs": {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Query string object"
                          },
                          "gzip": {
                            "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                            "default": true,
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Compression"
                          },
                          "capture": {
                            "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                            "anyOf": [
                              {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "json": {
                                        "type": "string",
                                        "title": "Jsonpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "json"
                                    ],
                                    "additionalProperties": true,
                                    "title": "JSON Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "xpath": {
                                        "type": "string",
                                        "title": "Xpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "xpath"
                                    ],
                                    "additionalProperties": true,
                                    "title": "XPath Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "regexp": {
                                        "type": "string",
                                        "title": "Regular expression"
                                      },
                                      "group": {
                                        "description": "Named or Integer Index capturing group",
                                        "anyOf": [
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Regex Group"
                                      },
                                      "flags": {
                                        "type": "object",
                                        "description": "Flags for the regular expression",
                                        "properties": {},
                                        "additionalProperties": true
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "regexp"
                                    ],
                                    "additionalProperties": true,
                                    "title": "RegExp Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "header": {
                                        "type": "string",
                                        "description": "Allows you to set the name of the response header whose value you want to capture.",
                                        "title": "Header name"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "header"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Header Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "selector": {
                                        "type": "string",
                                        "title": "Cheerio element selector"
                                      },
                                      "attr": {
                                        "type": "string",
                                        "title": "Attribute Name"
                                      },
                                      "index": {
                                        "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                        "anyOf": [
                                          {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          {
                                            "type": "string",
                                            "enum": [
                                              "last",
                                              "random"
                                            ]
                                          }
                                        ],
                                        "title": "Desired Index"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "selector"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Selector (Cheerio) Capture"
                                  }
                                ]
                              },
                              {
                                "type": "array",
                                "items": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "json": {
                                          "type": "string",
                                          "title": "Jsonpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "json"
                                      ],
                                      "additionalProperties": true,
                                      "title": "JSON Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "xpath": {
                                          "type": "string",
                                          "title": "Xpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "xpath"
                                      ],
                                      "additionalProperties": true,
                                      "title": "XPath Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "regexp": {
                                          "type": "string",
                                          "title": "Regular expression"
                                        },
                                        "group": {
                                          "description": "Named or Integer Index capturing group",
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Regex Group"
                                        },
                                        "flags": {
                                          "type": "object",
                                          "description": "Flags for the regular expression",
                                          "properties": {},
                                          "additionalProperties": true
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "regexp"
                                      ],
                                      "additionalProperties": true,
                                      "title": "RegExp Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "header": {
                                          "type": "string",
                                          "description": "Allows you to set the name of the response header whose value you want to capture.",
                                          "title": "Header name"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "header"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Header Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "selector": {
                                          "type": "string",
                                          "title": "Cheerio element selector"
                                        },
                                        "attr": {
                                          "type": "string",
                                          "title": "Attribute Name"
                                        },
                                        "index": {
                                          "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                          "anyOf": [
                                            {
                                              "anyOf": [
                                                {
                                                  "type": "number"
                                                },
                                                {
                                                  "type": "string"
                                                }
                                              ]
                                            },
                                            {
                                              "type": "string",
                                              "enum": [
                                                "last",
                                                "random"
                                              ]
                                            }
                                          ],
                                          "title": "Desired Index"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "selector"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Selector (Cheerio) Capture"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Capture"
                          },
                          "match": {
                            "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "json": {
                                    "type": "string",
                                    "description": "The part of the response to compare.",
                                    "title": "JSON"
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The expected value.",
                                    "title": "Value"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "json": {
                                      "type": "string",
                                      "description": "The part of the response to compare.",
                                      "title": "JSON"
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The expected value.",
                                      "title": "Value"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Match"
                          },
                          "auth": {
                            "type": "object",
                            "properties": {
                              "user": {
                                "type": "string",
                                "title": "Username"
                              },
                              "pass": {
                                "type": "string",
                                "title": "Password"
                              }
                            },
                            "additionalProperties": true,
                            "title": "Basic authentication"
                          },
                          "beforeRequest": {
                            "description": "Functions to run before every request is sent.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "Before Request"
                          },
                          "afterResponse": {
                            "description": "Functions to run after every response is received.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "After Response"
                          },
                          "ifTrue": {
                            "type": "string",
                            "description": "Expression that controls when to execute this request.",
                            "title": "Request Condition"
                          },
                          "expect": {
                            "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "statusCode": {
                                    "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Status Code"
                                  },
                                  "notStatusCode": {
                                    "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Not Status Code"
                                  },
                                  "contentType": {
                                    "type": "string",
                                    "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                    "title": "Expectation: Content type"
                                  },
                                  "hasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Has Property"
                                  },
                                  "notHasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Not Has Property"
                                  },
                                  "equals": {
                                    "type": "array",
                                    "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Equals"
                                  },
                                  "hasHeader": {
                                    "type": "string",
                                    "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "title": "Expectation: Has Header"
                                  },
                                  "headerEquals": {
                                    "type": "array",
                                    "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Header Equals"
                                  },
                                  "matchesRegexp": {
                                    "type": "string",
                                    "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                    "title": "Expectation: Matches Regular Expression"
                                  },
                                  "cdnHit": {
                                    "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ],
                                    "title": "Expectation: Is CDN Hit"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "statusCode": {
                                      "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Status Code"
                                    },
                                    "notStatusCode": {
                                      "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Not Status Code"
                                    },
                                    "contentType": {
                                      "type": "string",
                                      "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                      "title": "Expectation: Content type"
                                    },
                                    "hasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Has Property"
                                    },
                                    "notHasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Not Has Property"
                                    },
                                    "equals": {
                                      "type": "array",
                                      "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Equals"
                                    },
                                    "hasHeader": {
                                      "type": "string",
                                      "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "title": "Expectation: Has Header"
                                    },
                                    "headerEquals": {
                                      "type": "array",
                                      "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Header Equals"
                                    },
                                    "matchesRegexp": {
                                      "type": "string",
                                      "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                      "title": "Expectation: Matches Regular Expression"
                                    },
                                    "cdnHit": {
                                      "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                      "anyOf": [
                                        {
                                          "type": "boolean"
                                        },
                                        {
                                          "type": "string"
                                        }
                                      ],
                                      "title": "Expectation: Is CDN Hit"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Expect plugin expectations"
                          },
                          "json": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ],
                            "title": "JSON response body"
                          },
                          "body": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ],
                            "title": "Raw response body"
                          },
                          "form": {
                            "type": "object",
                            "description": "https://www.artillery.io/docs/reference/engines/http#url-encoded-forms-applicationx-www-form-urlencoded",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Url-encoded Form"
                          },
                          "formData": {
                            "type": "object",
                            "description": "https://www.artillery.io/docs/reference/engines/http#multipart-forms-multipartform-data",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Multipart Forms"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "additionalProperties": true,
                        "title": "Perform a PATCH request"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "delete": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "title": "URL"
                          },
                          "name": {
                            "type": "string",
                            "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                            "title": "URL name"
                          },
                          "headers": {
                            "type": "object",
                            "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Headers"
                          },
                          "cookie": {
                            "type": "object",
                            "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Cookies"
                          },
                          "followRedirect": {
                            "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Disable redirect following"
                          },
                          "qs": {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Query string object"
                          },
                          "gzip": {
                            "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                            "default": true,
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Compression"
                          },
                          "capture": {
                            "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                            "anyOf": [
                              {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "json": {
                                        "type": "string",
                                        "title": "Jsonpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "json"
                                    ],
                                    "additionalProperties": true,
                                    "title": "JSON Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "xpath": {
                                        "type": "string",
                                        "title": "Xpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "xpath"
                                    ],
                                    "additionalProperties": true,
                                    "title": "XPath Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "regexp": {
                                        "type": "string",
                                        "title": "Regular expression"
                                      },
                                      "group": {
                                        "description": "Named or Integer Index capturing group",
                                        "anyOf": [
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Regex Group"
                                      },
                                      "flags": {
                                        "type": "object",
                                        "description": "Flags for the regular expression",
                                        "properties": {},
                                        "additionalProperties": true
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "regexp"
                                    ],
                                    "additionalProperties": true,
                                    "title": "RegExp Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "header": {
                                        "type": "string",
                                        "description": "Allows you to set the name of the response header whose value you want to capture.",
                                        "title": "Header name"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "header"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Header Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "selector": {
                                        "type": "string",
                                        "title": "Cheerio element selector"
                                      },
                                      "attr": {
                                        "type": "string",
                                        "title": "Attribute Name"
                                      },
                                      "index": {
                                        "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                        "anyOf": [
                                          {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          {
                                            "type": "string",
                                            "enum": [
                                              "last",
                                              "random"
                                            ]
                                          }
                                        ],
                                        "title": "Desired Index"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "selector"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Selector (Cheerio) Capture"
                                  }
                                ]
                              },
                              {
                                "type": "array",
                                "items": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "json": {
                                          "type": "string",
                                          "title": "Jsonpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "json"
                                      ],
                                      "additionalProperties": true,
                                      "title": "JSON Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "xpath": {
                                          "type": "string",
                                          "title": "Xpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "xpath"
                                      ],
                                      "additionalProperties": true,
                                      "title": "XPath Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "regexp": {
                                          "type": "string",
                                          "title": "Regular expression"
                                        },
                                        "group": {
                                          "description": "Named or Integer Index capturing group",
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Regex Group"
                                        },
                                        "flags": {
                                          "type": "object",
                                          "description": "Flags for the regular expression",
                                          "properties": {},
                                          "additionalProperties": true
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "regexp"
                                      ],
                                      "additionalProperties": true,
                                      "title": "RegExp Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "header": {
                                          "type": "string",
                                          "description": "Allows you to set the name of the response header whose value you want to capture.",
                                          "title": "Header name"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "header"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Header Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "selector": {
                                          "type": "string",
                                          "title": "Cheerio element selector"
                                        },
                                        "attr": {
                                          "type": "string",
                                          "title": "Attribute Name"
                                        },
                                        "index": {
                                          "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                          "anyOf": [
                                            {
                                              "anyOf": [
                                                {
                                                  "type": "number"
                                                },
                                                {
                                                  "type": "string"
                                                }
                                              ]
                                            },
                                            {
                                              "type": "string",
                                              "enum": [
                                                "last",
                                                "random"
                                              ]
                                            }
                                          ],
                                          "title": "Desired Index"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "selector"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Selector (Cheerio) Capture"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Capture"
                          },
                          "match": {
                            "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "json": {
                                    "type": "string",
                                    "description": "The part of the response to compare.",
                                    "title": "JSON"
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The expected value.",
                                    "title": "Value"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "json": {
                                      "type": "string",
                                      "description": "The part of the response to compare.",
                                      "title": "JSON"
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The expected value.",
                                      "title": "Value"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Match"
                          },
                          "auth": {
                            "type": "object",
                            "properties": {
                              "user": {
                                "type": "string",
                                "title": "Username"
                              },
                              "pass": {
                                "type": "string",
                                "title": "Password"
                              }
                            },
                            "additionalProperties": true,
                            "title": "Basic authentication"
                          },
                          "beforeRequest": {
                            "description": "Functions to run before every request is sent.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "Before Request"
                          },
                          "afterResponse": {
                            "description": "Functions to run after every response is received.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "After Response"
                          },
                          "ifTrue": {
                            "type": "string",
                            "description": "Expression that controls when to execute this request.",
                            "title": "Request Condition"
                          },
                          "expect": {
                            "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "statusCode": {
                                    "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Status Code"
                                  },
                                  "notStatusCode": {
                                    "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Not Status Code"
                                  },
                                  "contentType": {
                                    "type": "string",
                                    "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                    "title": "Expectation: Content type"
                                  },
                                  "hasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Has Property"
                                  },
                                  "notHasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Not Has Property"
                                  },
                                  "equals": {
                                    "type": "array",
                                    "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Equals"
                                  },
                                  "hasHeader": {
                                    "type": "string",
                                    "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "title": "Expectation: Has Header"
                                  },
                                  "headerEquals": {
                                    "type": "array",
                                    "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Header Equals"
                                  },
                                  "matchesRegexp": {
                                    "type": "string",
                                    "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                    "title": "Expectation: Matches Regular Expression"
                                  },
                                  "cdnHit": {
                                    "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ],
                                    "title": "Expectation: Is CDN Hit"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "statusCode": {
                                      "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Status Code"
                                    },
                                    "notStatusCode": {
                                      "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Not Status Code"
                                    },
                                    "contentType": {
                                      "type": "string",
                                      "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                      "title": "Expectation: Content type"
                                    },
                                    "hasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Has Property"
                                    },
                                    "notHasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Not Has Property"
                                    },
                                    "equals": {
                                      "type": "array",
                                      "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Equals"
                                    },
                                    "hasHeader": {
                                      "type": "string",
                                      "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "title": "Expectation: Has Header"
                                    },
                                    "headerEquals": {
                                      "type": "array",
                                      "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Header Equals"
                                    },
                                    "matchesRegexp": {
                                      "type": "string",
                                      "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                      "title": "Expectation: Matches Regular Expression"
                                    },
                                    "cdnHit": {
                                      "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                      "anyOf": [
                                        {
                                          "type": "boolean"
                                        },
                                        {
                                          "type": "string"
                                        }
                                      ],
                                      "title": "Expectation: Is CDN Hit"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Expect plugin expectations"
                          },
                          "json": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ],
                            "title": "JSON response body"
                          },
                          "body": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ],
                            "title": "Raw response body"
                          },
                          "form": {
                            "type": "object",
                            "description": "https://www.artillery.io/docs/reference/engines/http#url-encoded-forms-applicationx-www-form-urlencoded",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Url-encoded Form"
                          },
                          "formData": {
                            "type": "object",
                            "description": "https://www.artillery.io/docs/reference/engines/http#multipart-forms-multipartform-data",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Multipart Forms"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "additionalProperties": true,
                        "title": "Perform a DELETE request"
                      }
                    },
                    "additionalProperties": true
                  }
                ]
              },
              "title": "Loop (Http)"
            },
            "whileTrue": {
              "type": "string",
              "description": "Control the loop using custom logic:\nhttps://www.artillery.io/docs/reference/engines/http#looping-through-an-array",
              "title": "Loop While True"
            },
            "count": {
              "description": "https://www.artillery.io/docs/reference/engines/http#looping-through-an-array",
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "title": "Loop N times"
            },
            "over": {
              "description": "https://www.artillery.io/docs/reference/engines/http#looping-through-an-array",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ],
              "title": "Loop over array"
            }
          },
          "additionalProperties": true
        }
      ]
    },
    "WsFlowItemSchema": {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "function": {
              "type": "string",
              "description": "Function name to run.",
              "title": "Function"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "log": {
              "type": "string",
              "description": "Print given message to the console.",
              "title": "Log"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "think": {
              "description": "Pause virtual user for the given duration (in seconds).",
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "title": "Think time"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "send": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true
                }
              ]
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "connect": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "object",
                  "properties": {
                    "function": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": true
                },
                {
                  "type": "object",
                  "properties": {
                    "target": {
                      "type": "string"
                    },
                    "proxy": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true
                }
              ]
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "loop": {
              "type": "array",
              "items": {
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "function": {
                        "type": "string",
                        "description": "Function name to run.",
                        "title": "Function"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "log": {
                        "type": "string",
                        "description": "Print given message to the console.",
                        "title": "Log"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "think": {
                        "description": "Pause virtual user for the given duration (in seconds).",
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "string"
                          }
                        ],
                        "title": "Think time"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "send": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": true
                          }
                        ]
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "connect": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "function": {
                                "type": "string"
                              }
                            },
                            "additionalProperties": true
                          },
                          {
                            "type": "object",
                            "properties": {
                              "target": {
                                "type": "string"
                              },
                              "proxy": {
                                "type": "object",
                                "properties": {
                                  "url": {
                                    "type": "string"
                                  }
                                },
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true
                          }
                        ]
                      }
                    },
                    "additionalProperties": true
                  }
                ]
              },
              "title": "Loop (Websocket)"
            },
            "whileTrue": {
              "type": "string",
              "description": "Control the loop using custom logic:\nhttps://www.artillery.io/docs/reference/engines/http#looping-through-an-array",
              "title": "Loop While True"
            },
            "count": {
              "description": "https://www.artillery.io/docs/reference/engines/http#looping-through-an-array",
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "title": "Loop N times"
            },
            "over": {
              "description": "https://www.artillery.io/docs/reference/engines/http#looping-through-an-array",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ],
              "title": "Loop over array"
            }
          },
          "additionalProperties": true
        }
      ]
    },
    "SocketIoFlowItemSchema": {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "function": {
              "type": "string",
              "description": "Function name to run.",
              "title": "Function"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "log": {
              "type": "string",
              "description": "Print given message to the console.",
              "title": "Log"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "think": {
              "description": "Pause virtual user for the given duration (in seconds).",
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "title": "Think time"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "get": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL"
                },
                "name": {
                  "type": "string",
                  "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                  "title": "URL name"
                },
                "headers": {
                  "type": "object",
                  "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Headers"
                },
                "cookie": {
                  "type": "object",
                  "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Cookies"
                },
                "followRedirect": {
                  "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Disable redirect following"
                },
                "qs": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Query string object"
                },
                "gzip": {
                  "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                  "default": true,
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Compression"
                },
                "capture": {
                  "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                  "anyOf": [
                    {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "json": {
                              "type": "string",
                              "title": "Jsonpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "json"
                          ],
                          "additionalProperties": true,
                          "title": "JSON Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "xpath": {
                              "type": "string",
                              "title": "Xpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "xpath"
                          ],
                          "additionalProperties": true,
                          "title": "XPath Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "regexp": {
                              "type": "string",
                              "title": "Regular expression"
                            },
                            "group": {
                              "description": "Named or Integer Index capturing group",
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Regex Group"
                            },
                            "flags": {
                              "type": "object",
                              "description": "Flags for the regular expression",
                              "properties": {},
                              "additionalProperties": true
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "regexp"
                          ],
                          "additionalProperties": true,
                          "title": "RegExp Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "header": {
                              "type": "string",
                              "description": "Allows you to set the name of the response header whose value you want to capture.",
                              "title": "Header name"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "header"
                          ],
                          "additionalProperties": true,
                          "title": "Header Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "selector": {
                              "type": "string",
                              "title": "Cheerio element selector"
                            },
                            "attr": {
                              "type": "string",
                              "title": "Attribute Name"
                            },
                            "index": {
                              "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                              "anyOf": [
                                {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                },
                                {
                                  "type": "string",
                                  "enum": [
                                    "last",
                                    "random"
                                  ]
                                }
                              ],
                              "title": "Desired Index"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "selector"
                          ],
                          "additionalProperties": true,
                          "title": "Selector (Cheerio) Capture"
                        }
                      ]
                    },
                    {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "json": {
                                "type": "string",
                                "title": "Jsonpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "json"
                            ],
                            "additionalProperties": true,
                            "title": "JSON Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "xpath": {
                                "type": "string",
                                "title": "Xpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "xpath"
                            ],
                            "additionalProperties": true,
                            "title": "XPath Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "regexp": {
                                "type": "string",
                                "title": "Regular expression"
                              },
                              "group": {
                                "description": "Named or Integer Index capturing group",
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Regex Group"
                              },
                              "flags": {
                                "type": "object",
                                "description": "Flags for the regular expression",
                                "properties": {},
                                "additionalProperties": true
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "regexp"
                            ],
                            "additionalProperties": true,
                            "title": "RegExp Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "header": {
                                "type": "string",
                                "description": "Allows you to set the name of the response header whose value you want to capture.",
                                "title": "Header name"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "header"
                            ],
                            "additionalProperties": true,
                            "title": "Header Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "selector": {
                                "type": "string",
                                "title": "Cheerio element selector"
                              },
                              "attr": {
                                "type": "string",
                                "title": "Attribute Name"
                              },
                              "index": {
                                "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                "anyOf": [
                                  {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  {
                                    "type": "string",
                                    "enum": [
                                      "last",
                                      "random"
                                    ]
                                  }
                                ],
                                "title": "Desired Index"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "selector"
                            ],
                            "additionalProperties": true,
                            "title": "Selector (Cheerio) Capture"
                          }
                        ]
                      }
                    }
                  ],
                  "title": "Capture"
                },
                "match": {
                  "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "json": {
                          "type": "string",
                          "description": "The part of the response to compare.",
                          "title": "JSON"
                        },
                        "value": {
                          "type": "string",
                          "description": "The expected value.",
                          "title": "Value"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "json": {
                            "type": "string",
                            "description": "The part of the response to compare.",
                            "title": "JSON"
                          },
                          "value": {
                            "type": "string",
                            "description": "The expected value.",
                            "title": "Value"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Match"
                },
                "auth": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "type": "string",
                      "title": "Username"
                    },
                    "pass": {
                      "type": "string",
                      "title": "Password"
                    }
                  },
                  "additionalProperties": true,
                  "title": "Basic authentication"
                },
                "beforeRequest": {
                  "description": "Functions to run before every request is sent.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "Before Request"
                },
                "afterResponse": {
                  "description": "Functions to run after every response is received.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "After Response"
                },
                "ifTrue": {
                  "type": "string",
                  "description": "Expression that controls when to execute this request.",
                  "title": "Request Condition"
                },
                "expect": {
                  "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Status Code"
                        },
                        "notStatusCode": {
                          "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Not Status Code"
                        },
                        "contentType": {
                          "type": "string",
                          "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                          "title": "Expectation: Content type"
                        },
                        "hasProperty": {
                          "type": "string",
                          "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Has Property"
                        },
                        "notHasProperty": {
                          "type": "string",
                          "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Not Has Property"
                        },
                        "equals": {
                          "type": "array",
                          "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Equals"
                        },
                        "hasHeader": {
                          "type": "string",
                          "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "title": "Expectation: Has Header"
                        },
                        "headerEquals": {
                          "type": "array",
                          "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Header Equals"
                        },
                        "matchesRegexp": {
                          "type": "string",
                          "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                          "title": "Expectation: Matches Regular Expression"
                        },
                        "cdnHit": {
                          "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Expectation: Is CDN Hit"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "statusCode": {
                            "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Status Code"
                          },
                          "notStatusCode": {
                            "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Not Status Code"
                          },
                          "contentType": {
                            "type": "string",
                            "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                            "title": "Expectation: Content type"
                          },
                          "hasProperty": {
                            "type": "string",
                            "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Has Property"
                          },
                          "notHasProperty": {
                            "type": "string",
                            "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Not Has Property"
                          },
                          "equals": {
                            "type": "array",
                            "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Equals"
                          },
                          "hasHeader": {
                            "type": "string",
                            "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "title": "Expectation: Has Header"
                          },
                          "headerEquals": {
                            "type": "array",
                            "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Header Equals"
                          },
                          "matchesRegexp": {
                            "type": "string",
                            "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                            "title": "Expectation: Matches Regular Expression"
                          },
                          "cdnHit": {
                            "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Expectation: Is CDN Hit"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Expect plugin expectations"
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": true,
              "title": "Perform a GET request"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "post": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL"
                },
                "name": {
                  "type": "string",
                  "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                  "title": "URL name"
                },
                "headers": {
                  "type": "object",
                  "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Headers"
                },
                "cookie": {
                  "type": "object",
                  "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Cookies"
                },
                "followRedirect": {
                  "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Disable redirect following"
                },
                "qs": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Query string object"
                },
                "gzip": {
                  "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                  "default": true,
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Compression"
                },
                "capture": {
                  "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                  "anyOf": [
                    {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "json": {
                              "type": "string",
                              "title": "Jsonpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "json"
                          ],
                          "additionalProperties": true,
                          "title": "JSON Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "xpath": {
                              "type": "string",
                              "title": "Xpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "xpath"
                          ],
                          "additionalProperties": true,
                          "title": "XPath Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "regexp": {
                              "type": "string",
                              "title": "Regular expression"
                            },
                            "group": {
                              "description": "Named or Integer Index capturing group",
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Regex Group"
                            },
                            "flags": {
                              "type": "object",
                              "description": "Flags for the regular expression",
                              "properties": {},
                              "additionalProperties": true
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "regexp"
                          ],
                          "additionalProperties": true,
                          "title": "RegExp Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "header": {
                              "type": "string",
                              "description": "Allows you to set the name of the response header whose value you want to capture.",
                              "title": "Header name"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "header"
                          ],
                          "additionalProperties": true,
                          "title": "Header Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "selector": {
                              "type": "string",
                              "title": "Cheerio element selector"
                            },
                            "attr": {
                              "type": "string",
                              "title": "Attribute Name"
                            },
                            "index": {
                              "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                              "anyOf": [
                                {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                },
                                {
                                  "type": "string",
                                  "enum": [
                                    "last",
                                    "random"
                                  ]
                                }
                              ],
                              "title": "Desired Index"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "selector"
                          ],
                          "additionalProperties": true,
                          "title": "Selector (Cheerio) Capture"
                        }
                      ]
                    },
                    {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "json": {
                                "type": "string",
                                "title": "Jsonpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "json"
                            ],
                            "additionalProperties": true,
                            "title": "JSON Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "xpath": {
                                "type": "string",
                                "title": "Xpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "xpath"
                            ],
                            "additionalProperties": true,
                            "title": "XPath Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "regexp": {
                                "type": "string",
                                "title": "Regular expression"
                              },
                              "group": {
                                "description": "Named or Integer Index capturing group",
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Regex Group"
                              },
                              "flags": {
                                "type": "object",
                                "description": "Flags for the regular expression",
                                "properties": {},
                                "additionalProperties": true
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "regexp"
                            ],
                            "additionalProperties": true,
                            "title": "RegExp Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "header": {
                                "type": "string",
                                "description": "Allows you to set the name of the response header whose value you want to capture.",
                                "title": "Header name"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "header"
                            ],
                            "additionalProperties": true,
                            "title": "Header Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "selector": {
                                "type": "string",
                                "title": "Cheerio element selector"
                              },
                              "attr": {
                                "type": "string",
                                "title": "Attribute Name"
                              },
                              "index": {
                                "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                "anyOf": [
                                  {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  {
                                    "type": "string",
                                    "enum": [
                                      "last",
                                      "random"
                                    ]
                                  }
                                ],
                                "title": "Desired Index"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "selector"
                            ],
                            "additionalProperties": true,
                            "title": "Selector (Cheerio) Capture"
                          }
                        ]
                      }
                    }
                  ],
                  "title": "Capture"
                },
                "match": {
                  "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "json": {
                          "type": "string",
                          "description": "The part of the response to compare.",
                          "title": "JSON"
                        },
                        "value": {
                          "type": "string",
                          "description": "The expected value.",
                          "title": "Value"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "json": {
                            "type": "string",
                            "description": "The part of the response to compare.",
                            "title": "JSON"
                          },
                          "value": {
                            "type": "string",
                            "description": "The expected value.",
                            "title": "Value"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Match"
                },
                "auth": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "type": "string",
                      "title": "Username"
                    },
                    "pass": {
                      "type": "string",
                      "title": "Password"
                    }
                  },
                  "additionalProperties": true,
                  "title": "Basic authentication"
                },
                "beforeRequest": {
                  "description": "Functions to run before every request is sent.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "Before Request"
                },
                "afterResponse": {
                  "description": "Functions to run after every response is received.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "After Response"
                },
                "ifTrue": {
                  "type": "string",
                  "description": "Expression that controls when to execute this request.",
                  "title": "Request Condition"
                },
                "expect": {
                  "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Status Code"
                        },
                        "notStatusCode": {
                          "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Not Status Code"
                        },
                        "contentType": {
                          "type": "string",
                          "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                          "title": "Expectation: Content type"
                        },
                        "hasProperty": {
                          "type": "string",
                          "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Has Property"
                        },
                        "notHasProperty": {
                          "type": "string",
                          "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Not Has Property"
                        },
                        "equals": {
                          "type": "array",
                          "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Equals"
                        },
                        "hasHeader": {
                          "type": "string",
                          "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "title": "Expectation: Has Header"
                        },
                        "headerEquals": {
                          "type": "array",
                          "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Header Equals"
                        },
                        "matchesRegexp": {
                          "type": "string",
                          "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                          "title": "Expectation: Matches Regular Expression"
                        },
                        "cdnHit": {
                          "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Expectation: Is CDN Hit"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "statusCode": {
                            "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Status Code"
                          },
                          "notStatusCode": {
                            "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Not Status Code"
                          },
                          "contentType": {
                            "type": "string",
                            "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                            "title": "Expectation: Content type"
                          },
                          "hasProperty": {
                            "type": "string",
                            "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Has Property"
                          },
                          "notHasProperty": {
                            "type": "string",
                            "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Not Has Property"
                          },
                          "equals": {
                            "type": "array",
                            "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Equals"
                          },
                          "hasHeader": {
                            "type": "string",
                            "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "title": "Expectation: Has Header"
                          },
                          "headerEquals": {
                            "type": "array",
                            "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Header Equals"
                          },
                          "matchesRegexp": {
                            "type": "string",
                            "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                            "title": "Expectation: Matches Regular Expression"
                          },
                          "cdnHit": {
                            "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Expectation: Is CDN Hit"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Expect plugin expectations"
                },
                "json": {
                  "type": [
                    "array",
                    "boolean",
                    "number",
                    "object",
                    "string",
                    "null"
                  ],
                  "title": "JSON response body"
                },
                "body": {
                  "type": [
                    "array",
                    "boolean",
                    "number",
                    "object",
                    "string",
                    "null"
                  ],
                  "title": "Raw response body"
                },
                "form": {
                  "type": "object",
                  "description": "https://www.artillery.io/docs/reference/engines/http#url-encoded-forms-applicationx-www-form-urlencoded",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Url-encoded Form"
                },
                "formData": {
                  "type": "object",
                  "description": "https://www.artillery.io/docs/reference/engines/http#multipart-forms-multipartform-data",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Multipart Forms"
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": true,
              "title": "Perform a POST request"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "put": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL"
                },
                "name": {
                  "type": "string",
                  "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                  "title": "URL name"
                },
                "headers": {
                  "type": "object",
                  "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Headers"
                },
                "cookie": {
                  "type": "object",
                  "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Cookies"
                },
                "followRedirect": {
                  "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Disable redirect following"
                },
                "qs": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Query string object"
                },
                "gzip": {
                  "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                  "default": true,
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Compression"
                },
                "capture": {
                  "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                  "anyOf": [
                    {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "json": {
                              "type": "string",
                              "title": "Jsonpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "json"
                          ],
                          "additionalProperties": true,
                          "title": "JSON Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "xpath": {
                              "type": "string",
                              "title": "Xpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "xpath"
                          ],
                          "additionalProperties": true,
                          "title": "XPath Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "regexp": {
                              "type": "string",
                              "title": "Regular expression"
                            },
                            "group": {
                              "description": "Named or Integer Index capturing group",
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Regex Group"
                            },
                            "flags": {
                              "type": "object",
                              "description": "Flags for the regular expression",
                              "properties": {},
                              "additionalProperties": true
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "regexp"
                          ],
                          "additionalProperties": true,
                          "title": "RegExp Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "header": {
                              "type": "string",
                              "description": "Allows you to set the name of the response header whose value you want to capture.",
                              "title": "Header name"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "header"
                          ],
                          "additionalProperties": true,
                          "title": "Header Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "selector": {
                              "type": "string",
                              "title": "Cheerio element selector"
                            },
                            "attr": {
                              "type": "string",
                              "title": "Attribute Name"
                            },
                            "index": {
                              "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                              "anyOf": [
                                {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                },
                                {
                                  "type": "string",
                                  "enum": [
                                    "last",
                                    "random"
                                  ]
                                }
                              ],
                              "title": "Desired Index"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "selector"
                          ],
                          "additionalProperties": true,
                          "title": "Selector (Cheerio) Capture"
                        }
                      ]
                    },
                    {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "json": {
                                "type": "string",
                                "title": "Jsonpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "json"
                            ],
                            "additionalProperties": true,
                            "title": "JSON Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "xpath": {
                                "type": "string",
                                "title": "Xpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "xpath"
                            ],
                            "additionalProperties": true,
                            "title": "XPath Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "regexp": {
                                "type": "string",
                                "title": "Regular expression"
                              },
                              "group": {
                                "description": "Named or Integer Index capturing group",
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Regex Group"
                              },
                              "flags": {
                                "type": "object",
                                "description": "Flags for the regular expression",
                                "properties": {},
                                "additionalProperties": true
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "regexp"
                            ],
                            "additionalProperties": true,
                            "title": "RegExp Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "header": {
                                "type": "string",
                                "description": "Allows you to set the name of the response header whose value you want to capture.",
                                "title": "Header name"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "header"
                            ],
                            "additionalProperties": true,
                            "title": "Header Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "selector": {
                                "type": "string",
                                "title": "Cheerio element selector"
                              },
                              "attr": {
                                "type": "string",
                                "title": "Attribute Name"
                              },
                              "index": {
                                "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                "anyOf": [
                                  {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  {
                                    "type": "string",
                                    "enum": [
                                      "last",
                                      "random"
                                    ]
                                  }
                                ],
                                "title": "Desired Index"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "selector"
                            ],
                            "additionalProperties": true,
                            "title": "Selector (Cheerio) Capture"
                          }
                        ]
                      }
                    }
                  ],
                  "title": "Capture"
                },
                "match": {
                  "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "json": {
                          "type": "string",
                          "description": "The part of the response to compare.",
                          "title": "JSON"
                        },
                        "value": {
                          "type": "string",
                          "description": "The expected value.",
                          "title": "Value"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "json": {
                            "type": "string",
                            "description": "The part of the response to compare.",
                            "title": "JSON"
                          },
                          "value": {
                            "type": "string",
                            "description": "The expected value.",
                            "title": "Value"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Match"
                },
                "auth": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "type": "string",
                      "title": "Username"
                    },
                    "pass": {
                      "type": "string",
                      "title": "Password"
                    }
                  },
                  "additionalProperties": true,
                  "title": "Basic authentication"
                },
                "beforeRequest": {
                  "description": "Functions to run before every request is sent.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "Before Request"
                },
                "afterResponse": {
                  "description": "Functions to run after every response is received.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "After Response"
                },
                "ifTrue": {
                  "type": "string",
                  "description": "Expression that controls when to execute this request.",
                  "title": "Request Condition"
                },
                "expect": {
                  "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Status Code"
                        },
                        "notStatusCode": {
                          "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Not Status Code"
                        },
                        "contentType": {
                          "type": "string",
                          "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                          "title": "Expectation: Content type"
                        },
                        "hasProperty": {
                          "type": "string",
                          "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Has Property"
                        },
                        "notHasProperty": {
                          "type": "string",
                          "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Not Has Property"
                        },
                        "equals": {
                          "type": "array",
                          "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Equals"
                        },
                        "hasHeader": {
                          "type": "string",
                          "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "title": "Expectation: Has Header"
                        },
                        "headerEquals": {
                          "type": "array",
                          "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Header Equals"
                        },
                        "matchesRegexp": {
                          "type": "string",
                          "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                          "title": "Expectation: Matches Regular Expression"
                        },
                        "cdnHit": {
                          "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Expectation: Is CDN Hit"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "statusCode": {
                            "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Status Code"
                          },
                          "notStatusCode": {
                            "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Not Status Code"
                          },
                          "contentType": {
                            "type": "string",
                            "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                            "title": "Expectation: Content type"
                          },
                          "hasProperty": {
                            "type": "string",
                            "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Has Property"
                          },
                          "notHasProperty": {
                            "type": "string",
                            "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Not Has Property"
                          },
                          "equals": {
                            "type": "array",
                            "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Equals"
                          },
                          "hasHeader": {
                            "type": "string",
                            "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "title": "Expectation: Has Header"
                          },
                          "headerEquals": {
                            "type": "array",
                            "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Header Equals"
                          },
                          "matchesRegexp": {
                            "type": "string",
                            "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                            "title": "Expectation: Matches Regular Expression"
                          },
                          "cdnHit": {
                            "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Expectation: Is CDN Hit"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Expect plugin expectations"
                },
                "json": {
                  "type": [
                    "array",
                    "boolean",
                    "number",
                    "object",
                    "string",
                    "null"
                  ],
                  "title": "JSON response body"
                },
                "body": {
                  "type": [
                    "array",
                    "boolean",
                    "number",
                    "object",
                    "string",
                    "null"
                  ],
                  "title": "Raw response body"
                },
                "form": {
                  "type": "object",
                  "description": "https://www.artillery.io/docs/reference/engines/http#url-encoded-forms-applicationx-www-form-urlencoded",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Url-encoded Form"
                },
                "formData": {
                  "type": "object",
                  "description": "https://www.artillery.io/docs/reference/engines/http#multipart-forms-multipartform-data",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Multipart Forms"
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": true,
              "title": "Perform a PUT request"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "patch": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL"
                },
                "name": {
                  "type": "string",
                  "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                  "title": "URL name"
                },
                "headers": {
                  "type": "object",
                  "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Headers"
                },
                "cookie": {
                  "type": "object",
                  "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Cookies"
                },
                "followRedirect": {
                  "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Disable redirect following"
                },
                "qs": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Query string object"
                },
                "gzip": {
                  "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                  "default": true,
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Compression"
                },
                "capture": {
                  "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                  "anyOf": [
                    {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "json": {
                              "type": "string",
                              "title": "Jsonpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "json"
                          ],
                          "additionalProperties": true,
                          "title": "JSON Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "xpath": {
                              "type": "string",
                              "title": "Xpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "xpath"
                          ],
                          "additionalProperties": true,
                          "title": "XPath Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "regexp": {
                              "type": "string",
                              "title": "Regular expression"
                            },
                            "group": {
                              "description": "Named or Integer Index capturing group",
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Regex Group"
                            },
                            "flags": {
                              "type": "object",
                              "description": "Flags for the regular expression",
                              "properties": {},
                              "additionalProperties": true
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "regexp"
                          ],
                          "additionalProperties": true,
                          "title": "RegExp Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "header": {
                              "type": "string",
                              "description": "Allows you to set the name of the response header whose value you want to capture.",
                              "title": "Header name"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "header"
                          ],
                          "additionalProperties": true,
                          "title": "Header Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "selector": {
                              "type": "string",
                              "title": "Cheerio element selector"
                            },
                            "attr": {
                              "type": "string",
                              "title": "Attribute Name"
                            },
                            "index": {
                              "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                              "anyOf": [
                                {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                },
                                {
                                  "type": "string",
                                  "enum": [
                                    "last",
                                    "random"
                                  ]
                                }
                              ],
                              "title": "Desired Index"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "selector"
                          ],
                          "additionalProperties": true,
                          "title": "Selector (Cheerio) Capture"
                        }
                      ]
                    },
                    {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "json": {
                                "type": "string",
                                "title": "Jsonpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "json"
                            ],
                            "additionalProperties": true,
                            "title": "JSON Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "xpath": {
                                "type": "string",
                                "title": "Xpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "xpath"
                            ],
                            "additionalProperties": true,
                            "title": "XPath Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "regexp": {
                                "type": "string",
                                "title": "Regular expression"
                              },
                              "group": {
                                "description": "Named or Integer Index capturing group",
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Regex Group"
                              },
                              "flags": {
                                "type": "object",
                                "description": "Flags for the regular expression",
                                "properties": {},
                                "additionalProperties": true
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "regexp"
                            ],
                            "additionalProperties": true,
                            "title": "RegExp Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "header": {
                                "type": "string",
                                "description": "Allows you to set the name of the response header whose value you want to capture.",
                                "title": "Header name"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "header"
                            ],
                            "additionalProperties": true,
                            "title": "Header Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "selector": {
                                "type": "string",
                                "title": "Cheerio element selector"
                              },
                              "attr": {
                                "type": "string",
                                "title": "Attribute Name"
                              },
                              "index": {
                                "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                "anyOf": [
                                  {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  {
                                    "type": "string",
                                    "enum": [
                                      "last",
                                      "random"
                                    ]
                                  }
                                ],
                                "title": "Desired Index"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "selector"
                            ],
                            "additionalProperties": true,
                            "title": "Selector (Cheerio) Capture"
                          }
                        ]
                      }
                    }
                  ],
                  "title": "Capture"
                },
                "match": {
                  "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "json": {
                          "type": "string",
                          "description": "The part of the response to compare.",
                          "title": "JSON"
                        },
                        "value": {
                          "type": "string",
                          "description": "The expected value.",
                          "title": "Value"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "json": {
                            "type": "string",
                            "description": "The part of the response to compare.",
                            "title": "JSON"
                          },
                          "value": {
                            "type": "string",
                            "description": "The expected value.",
                            "title": "Value"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Match"
                },
                "auth": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "type": "string",
                      "title": "Username"
                    },
                    "pass": {
                      "type": "string",
                      "title": "Password"
                    }
                  },
                  "additionalProperties": true,
                  "title": "Basic authentication"
                },
                "beforeRequest": {
                  "description": "Functions to run before every request is sent.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "Before Request"
                },
                "afterResponse": {
                  "description": "Functions to run after every response is received.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "After Response"
                },
                "ifTrue": {
                  "type": "string",
                  "description": "Expression that controls when to execute this request.",
                  "title": "Request Condition"
                },
                "expect": {
                  "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Status Code"
                        },
                        "notStatusCode": {
                          "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Not Status Code"
                        },
                        "contentType": {
                          "type": "string",
                          "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                          "title": "Expectation: Content type"
                        },
                        "hasProperty": {
                          "type": "string",
                          "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Has Property"
                        },
                        "notHasProperty": {
                          "type": "string",
                          "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Not Has Property"
                        },
                        "equals": {
                          "type": "array",
                          "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Equals"
                        },
                        "hasHeader": {
                          "type": "string",
                          "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "title": "Expectation: Has Header"
                        },
                        "headerEquals": {
                          "type": "array",
                          "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Header Equals"
                        },
                        "matchesRegexp": {
                          "type": "string",
                          "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                          "title": "Expectation: Matches Regular Expression"
                        },
                        "cdnHit": {
                          "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Expectation: Is CDN Hit"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "statusCode": {
                            "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Status Code"
                          },
                          "notStatusCode": {
                            "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Not Status Code"
                          },
                          "contentType": {
                            "type": "string",
                            "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                            "title": "Expectation: Content type"
                          },
                          "hasProperty": {
                            "type": "string",
                            "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Has Property"
                          },
                          "notHasProperty": {
                            "type": "string",
                            "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Not Has Property"
                          },
                          "equals": {
                            "type": "array",
                            "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Equals"
                          },
                          "hasHeader": {
                            "type": "string",
                            "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "title": "Expectation: Has Header"
                          },
                          "headerEquals": {
                            "type": "array",
                            "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Header Equals"
                          },
                          "matchesRegexp": {
                            "type": "string",
                            "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                            "title": "Expectation: Matches Regular Expression"
                          },
                          "cdnHit": {
                            "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Expectation: Is CDN Hit"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Expect plugin expectations"
                },
                "json": {
                  "type": [
                    "array",
                    "boolean",
                    "number",
                    "object",
                    "string",
                    "null"
                  ],
                  "title": "JSON response body"
                },
                "body": {
                  "type": [
                    "array",
                    "boolean",
                    "number",
                    "object",
                    "string",
                    "null"
                  ],
                  "title": "Raw response body"
                },
                "form": {
                  "type": "object",
                  "description": "https://www.artillery.io/docs/reference/engines/http#url-encoded-forms-applicationx-www-form-urlencoded",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Url-encoded Form"
                },
                "formData": {
                  "type": "object",
                  "description": "https://www.artillery.io/docs/reference/engines/http#multipart-forms-multipartform-data",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Multipart Forms"
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": true,
              "title": "Perform a PATCH request"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "delete": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL"
                },
                "name": {
                  "type": "string",
                  "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                  "title": "URL name"
                },
                "headers": {
                  "type": "object",
                  "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Headers"
                },
                "cookie": {
                  "type": "object",
                  "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Request Cookies"
                },
                "followRedirect": {
                  "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Disable redirect following"
                },
                "qs": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Query string object"
                },
                "gzip": {
                  "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                  "default": true,
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "title": "Compression"
                },
                "capture": {
                  "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                  "anyOf": [
                    {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "json": {
                              "type": "string",
                              "title": "Jsonpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "json"
                          ],
                          "additionalProperties": true,
                          "title": "JSON Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "xpath": {
                              "type": "string",
                              "title": "Xpath expression"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "xpath"
                          ],
                          "additionalProperties": true,
                          "title": "XPath Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "regexp": {
                              "type": "string",
                              "title": "Regular expression"
                            },
                            "group": {
                              "description": "Named or Integer Index capturing group",
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Regex Group"
                            },
                            "flags": {
                              "type": "object",
                              "description": "Flags for the regular expression",
                              "properties": {},
                              "additionalProperties": true
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "regexp"
                          ],
                          "additionalProperties": true,
                          "title": "RegExp Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "header": {
                              "type": "string",
                              "description": "Allows you to set the name of the response header whose value you want to capture.",
                              "title": "Header name"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "header"
                          ],
                          "additionalProperties": true,
                          "title": "Header Capture"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "selector": {
                              "type": "string",
                              "title": "Cheerio element selector"
                            },
                            "attr": {
                              "type": "string",
                              "title": "Attribute Name"
                            },
                            "index": {
                              "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                              "anyOf": [
                                {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                },
                                {
                                  "type": "string",
                                  "enum": [
                                    "last",
                                    "random"
                                  ]
                                }
                              ],
                              "title": "Desired Index"
                            },
                            "as": {
                              "type": "string",
                              "title": "Name your capture"
                            },
                            "strict": {
                              "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string"
                                }
                              ],
                              "title": "Strict?"
                            }
                          },
                          "required": [
                            "selector"
                          ],
                          "additionalProperties": true,
                          "title": "Selector (Cheerio) Capture"
                        }
                      ]
                    },
                    {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "json": {
                                "type": "string",
                                "title": "Jsonpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "json"
                            ],
                            "additionalProperties": true,
                            "title": "JSON Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "xpath": {
                                "type": "string",
                                "title": "Xpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "xpath"
                            ],
                            "additionalProperties": true,
                            "title": "XPath Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "regexp": {
                                "type": "string",
                                "title": "Regular expression"
                              },
                              "group": {
                                "description": "Named or Integer Index capturing group",
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Regex Group"
                              },
                              "flags": {
                                "type": "object",
                                "description": "Flags for the regular expression",
                                "properties": {},
                                "additionalProperties": true
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "regexp"
                            ],
                            "additionalProperties": true,
                            "title": "RegExp Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "header": {
                                "type": "string",
                                "description": "Allows you to set the name of the response header whose value you want to capture.",
                                "title": "Header name"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "header"
                            ],
                            "additionalProperties": true,
                            "title": "Header Capture"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "selector": {
                                "type": "string",
                                "title": "Cheerio element selector"
                              },
                              "attr": {
                                "type": "string",
                                "title": "Attribute Name"
                              },
                              "index": {
                                "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                "anyOf": [
                                  {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  {
                                    "type": "string",
                                    "enum": [
                                      "last",
                                      "random"
                                    ]
                                  }
                                ],
                                "title": "Desired Index"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "selector"
                            ],
                            "additionalProperties": true,
                            "title": "Selector (Cheerio) Capture"
                          }
                        ]
                      }
                    }
                  ],
                  "title": "Capture"
                },
                "match": {
                  "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "json": {
                          "type": "string",
                          "description": "The part of the response to compare.",
                          "title": "JSON"
                        },
                        "value": {
                          "type": "string",
                          "description": "The expected value.",
                          "title": "Value"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "json": {
                            "type": "string",
                            "description": "The part of the response to compare.",
                            "title": "JSON"
                          },
                          "value": {
                            "type": "string",
                            "description": "The expected value.",
                            "title": "Value"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Match"
                },
                "auth": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "type": "string",
                      "title": "Username"
                    },
                    "pass": {
                      "type": "string",
                      "title": "Password"
                    }
                  },
                  "additionalProperties": true,
                  "title": "Basic authentication"
                },
                "beforeRequest": {
                  "description": "Functions to run before every request is sent.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "Before Request"
                },
                "afterResponse": {
                  "description": "Functions to run after every response is received.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "After Response"
                },
                "ifTrue": {
                  "type": "string",
                  "description": "Expression that controls when to execute this request.",
                  "title": "Request Condition"
                },
                "expect": {
                  "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Status Code"
                        },
                        "notStatusCode": {
                          "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            }
                          ],
                          "title": "Expectation: Not Status Code"
                        },
                        "contentType": {
                          "type": "string",
                          "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                          "title": "Expectation: Content type"
                        },
                        "hasProperty": {
                          "type": "string",
                          "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Has Property"
                        },
                        "notHasProperty": {
                          "type": "string",
                          "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                          "title": "Expectation: Not Has Property"
                        },
                        "equals": {
                          "type": "array",
                          "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Equals"
                        },
                        "hasHeader": {
                          "type": "string",
                          "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                          "title": "Expectation: Has Header"
                        },
                        "headerEquals": {
                          "type": "array",
                          "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                          "items": {
                            "type": "string"
                          },
                          "title": "Expectation: Header Equals"
                        },
                        "matchesRegexp": {
                          "type": "string",
                          "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                          "title": "Expectation: Matches Regular Expression"
                        },
                        "cdnHit": {
                          "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string"
                            }
                          ],
                          "title": "Expectation: Is CDN Hit"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "statusCode": {
                            "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Status Code"
                          },
                          "notStatusCode": {
                            "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Expectation: Not Status Code"
                          },
                          "contentType": {
                            "type": "string",
                            "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                            "title": "Expectation: Content type"
                          },
                          "hasProperty": {
                            "type": "string",
                            "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Has Property"
                          },
                          "notHasProperty": {
                            "type": "string",
                            "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                            "title": "Expectation: Not Has Property"
                          },
                          "equals": {
                            "type": "array",
                            "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Equals"
                          },
                          "hasHeader": {
                            "type": "string",
                            "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                            "title": "Expectation: Has Header"
                          },
                          "headerEquals": {
                            "type": "array",
                            "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                            "items": {
                              "type": "string"
                            },
                            "title": "Expectation: Header Equals"
                          },
                          "matchesRegexp": {
                            "type": "string",
                            "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                            "title": "Expectation: Matches Regular Expression"
                          },
                          "cdnHit": {
                            "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Expectation: Is CDN Hit"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Expect plugin expectations"
                },
                "json": {
                  "type": [
                    "array",
                    "boolean",
                    "number",
                    "object",
                    "string",
                    "null"
                  ],
                  "title": "JSON response body"
                },
                "body": {
                  "type": [
                    "array",
                    "boolean",
                    "number",
                    "object",
                    "string",
                    "null"
                  ],
                  "title": "Raw response body"
                },
                "form": {
                  "type": "object",
                  "description": "https://www.artillery.io/docs/reference/engines/http#url-encoded-forms-applicationx-www-form-urlencoded",
                  "properties": {
                    "/.*/": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true,
                  "patternProperties": {
                    ".*": {
                      "type": "string",
                      "properties": {},
                      "required": [],
                      "additionalProperties": true
                    }
                  },
                  "title": "Url-encoded Form"
                },
                "formData": {
                  "type": "object",
                  "description": "https://www.artillery.io/docs/reference/engines/http#multipart-forms-multipartform-data",
                  "properties": {},
                  "additionalProperties": true,
                  "title": "Multipart Forms"
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": true,
              "title": "Perform a DELETE request"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "emit": {
              "description": "Supports emitting action as an array, or by providing channel and data.\nMore information: https://www.artillery.io/docs/reference/engines/socketio#scenario-actions-and-configuration",
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "channel": {
                      "type": "string",
                      "description": "The name of the Socket.IO channel to emit an event to.\nIf using array mode, send as first argument instead.",
                      "title": "Channel"
                    },
                    "data": {
                      "description": "The data to emit as a string or object (or more generally, a serializable data structure).",
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {},
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      ],
                      "title": "Data"
                    }
                  },
                  "additionalProperties": true
                },
                {
                  "type": "array",
                  "items": {
                    "description": "The data to emit as a string or object (or more generally, a serializable data structure).",
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": true
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    ],
                    "title": "Data"
                  }
                }
              ],
              "title": "Emit Action"
            },
            "response": {
              "type": "object",
              "properties": {
                "on": {
                  "type": "string",
                  "description": "The name of the event to listen to.",
                  "title": "Event Name"
                },
                "channel": {
                  "type": "string",
                  "description": "The name of the channel where the response is received.",
                  "title": "Channel"
                },
                "data": {
                  "description": "The data to verify is in the response.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "object",
                      "properties": {},
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "Data"
                },
                "args": {
                  "description": "Assert that the response emits these arguments.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "object",
                      "properties": {},
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "Response Arguments"
                },
                "match": {
                  "description": "Match the response exactly to the value provided.",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "json": {
                          "type": "string",
                          "description": "The part of the response to compare.",
                          "title": "JSON"
                        },
                        "value": {
                          "type": "string",
                          "description": "The expected value.",
                          "title": "Value"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "json": {
                            "type": "string",
                            "description": "The part of the response to compare.",
                            "title": "JSON"
                          },
                          "value": {
                            "type": "string",
                            "description": "The expected value.",
                            "title": "Value"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Match"
                },
                "capture": {
                  "type": "object",
                  "properties": {
                    "json": {
                      "type": "string",
                      "title": "Jsonpath expression"
                    },
                    "as": {
                      "type": "string",
                      "title": "Name your capture"
                    },
                    "strict": {
                      "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                      "anyOf": [
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "Strict?"
                    }
                  },
                  "required": [
                    "json"
                  ],
                  "additionalProperties": true,
                  "title": "JSON Capture"
                }
              },
              "additionalProperties": true
            },
            "acknowledge": {
              "type": "object",
              "properties": {
                "data": {
                  "description": "The data to verify is in the acknowledge.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "object",
                      "properties": {},
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "Data"
                },
                "args": {
                  "description": "Assert that the acknowledge callback was sent with these arguments.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "object",
                      "properties": {},
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "title": "Acknowledge Arguments"
                },
                "match": {
                  "description": "Match the response exactly to the value provided.",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "json": {
                          "type": "string",
                          "description": "The part of the response to compare.",
                          "title": "JSON"
                        },
                        "value": {
                          "type": "string",
                          "description": "The expected value.",
                          "title": "Value"
                        }
                      },
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "json": {
                            "type": "string",
                            "description": "The part of the response to compare.",
                            "title": "JSON"
                          },
                          "value": {
                            "type": "string",
                            "description": "The expected value.",
                            "title": "Value"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  ],
                  "title": "Match"
                },
                "capture": {
                  "type": "object",
                  "properties": {
                    "json": {
                      "type": "string",
                      "title": "Jsonpath expression"
                    },
                    "as": {
                      "type": "string",
                      "title": "Name your capture"
                    },
                    "strict": {
                      "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                      "anyOf": [
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "title": "Strict?"
                    }
                  },
                  "required": [
                    "json"
                  ],
                  "additionalProperties": true,
                  "title": "JSON Capture"
                }
              },
              "additionalProperties": true
            },
            "namespace": {
              "type": "string",
              "description": "Optional namespace to use for emitting the event.",
              "title": "Namespace"
            }
          },
          "additionalProperties": true
        },
        {
          "type": "object",
          "properties": {
            "loop": {
              "type": "array",
              "items": {
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "function": {
                        "type": "string",
                        "description": "Function name to run.",
                        "title": "Function"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "log": {
                        "type": "string",
                        "description": "Print given message to the console.",
                        "title": "Log"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "think": {
                        "description": "Pause virtual user for the given duration (in seconds).",
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "string"
                          }
                        ],
                        "title": "Think time"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "get": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "title": "URL"
                          },
                          "name": {
                            "type": "string",
                            "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                            "title": "URL name"
                          },
                          "headers": {
                            "type": "object",
                            "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Headers"
                          },
                          "cookie": {
                            "type": "object",
                            "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Cookies"
                          },
                          "followRedirect": {
                            "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Disable redirect following"
                          },
                          "qs": {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Query string object"
                          },
                          "gzip": {
                            "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                            "default": true,
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Compression"
                          },
                          "capture": {
                            "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                            "anyOf": [
                              {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "json": {
                                        "type": "string",
                                        "title": "Jsonpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "json"
                                    ],
                                    "additionalProperties": true,
                                    "title": "JSON Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "xpath": {
                                        "type": "string",
                                        "title": "Xpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "xpath"
                                    ],
                                    "additionalProperties": true,
                                    "title": "XPath Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "regexp": {
                                        "type": "string",
                                        "title": "Regular expression"
                                      },
                                      "group": {
                                        "description": "Named or Integer Index capturing group",
                                        "anyOf": [
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Regex Group"
                                      },
                                      "flags": {
                                        "type": "object",
                                        "description": "Flags for the regular expression",
                                        "properties": {},
                                        "additionalProperties": true
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "regexp"
                                    ],
                                    "additionalProperties": true,
                                    "title": "RegExp Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "header": {
                                        "type": "string",
                                        "description": "Allows you to set the name of the response header whose value you want to capture.",
                                        "title": "Header name"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "header"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Header Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "selector": {
                                        "type": "string",
                                        "title": "Cheerio element selector"
                                      },
                                      "attr": {
                                        "type": "string",
                                        "title": "Attribute Name"
                                      },
                                      "index": {
                                        "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                        "anyOf": [
                                          {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          {
                                            "type": "string",
                                            "enum": [
                                              "last",
                                              "random"
                                            ]
                                          }
                                        ],
                                        "title": "Desired Index"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "selector"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Selector (Cheerio) Capture"
                                  }
                                ]
                              },
                              {
                                "type": "array",
                                "items": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "json": {
                                          "type": "string",
                                          "title": "Jsonpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "json"
                                      ],
                                      "additionalProperties": true,
                                      "title": "JSON Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "xpath": {
                                          "type": "string",
                                          "title": "Xpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "xpath"
                                      ],
                                      "additionalProperties": true,
                                      "title": "XPath Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "regexp": {
                                          "type": "string",
                                          "title": "Regular expression"
                                        },
                                        "group": {
                                          "description": "Named or Integer Index capturing group",
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Regex Group"
                                        },
                                        "flags": {
                                          "type": "object",
                                          "description": "Flags for the regular expression",
                                          "properties": {},
                                          "additionalProperties": true
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "regexp"
                                      ],
                                      "additionalProperties": true,
                                      "title": "RegExp Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "header": {
                                          "type": "string",
                                          "description": "Allows you to set the name of the response header whose value you want to capture.",
                                          "title": "Header name"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "header"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Header Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "selector": {
                                          "type": "string",
                                          "title": "Cheerio element selector"
                                        },
                                        "attr": {
                                          "type": "string",
                                          "title": "Attribute Name"
                                        },
                                        "index": {
                                          "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                          "anyOf": [
                                            {
                                              "anyOf": [
                                                {
                                                  "type": "number"
                                                },
                                                {
                                                  "type": "string"
                                                }
                                              ]
                                            },
                                            {
                                              "type": "string",
                                              "enum": [
                                                "last",
                                                "random"
                                              ]
                                            }
                                          ],
                                          "title": "Desired Index"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "selector"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Selector (Cheerio) Capture"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Capture"
                          },
                          "match": {
                            "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "json": {
                                    "type": "string",
                                    "description": "The part of the response to compare.",
                                    "title": "JSON"
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The expected value.",
                                    "title": "Value"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "json": {
                                      "type": "string",
                                      "description": "The part of the response to compare.",
                                      "title": "JSON"
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The expected value.",
                                      "title": "Value"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Match"
                          },
                          "auth": {
                            "type": "object",
                            "properties": {
                              "user": {
                                "type": "string",
                                "title": "Username"
                              },
                              "pass": {
                                "type": "string",
                                "title": "Password"
                              }
                            },
                            "additionalProperties": true,
                            "title": "Basic authentication"
                          },
                          "beforeRequest": {
                            "description": "Functions to run before every request is sent.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "Before Request"
                          },
                          "afterResponse": {
                            "description": "Functions to run after every response is received.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "After Response"
                          },
                          "ifTrue": {
                            "type": "string",
                            "description": "Expression that controls when to execute this request.",
                            "title": "Request Condition"
                          },
                          "expect": {
                            "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "statusCode": {
                                    "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Status Code"
                                  },
                                  "notStatusCode": {
                                    "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Not Status Code"
                                  },
                                  "contentType": {
                                    "type": "string",
                                    "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                    "title": "Expectation: Content type"
                                  },
                                  "hasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Has Property"
                                  },
                                  "notHasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Not Has Property"
                                  },
                                  "equals": {
                                    "type": "array",
                                    "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Equals"
                                  },
                                  "hasHeader": {
                                    "type": "string",
                                    "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "title": "Expectation: Has Header"
                                  },
                                  "headerEquals": {
                                    "type": "array",
                                    "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Header Equals"
                                  },
                                  "matchesRegexp": {
                                    "type": "string",
                                    "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                    "title": "Expectation: Matches Regular Expression"
                                  },
                                  "cdnHit": {
                                    "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ],
                                    "title": "Expectation: Is CDN Hit"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "statusCode": {
                                      "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Status Code"
                                    },
                                    "notStatusCode": {
                                      "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Not Status Code"
                                    },
                                    "contentType": {
                                      "type": "string",
                                      "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                      "title": "Expectation: Content type"
                                    },
                                    "hasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Has Property"
                                    },
                                    "notHasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Not Has Property"
                                    },
                                    "equals": {
                                      "type": "array",
                                      "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Equals"
                                    },
                                    "hasHeader": {
                                      "type": "string",
                                      "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "title": "Expectation: Has Header"
                                    },
                                    "headerEquals": {
                                      "type": "array",
                                      "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Header Equals"
                                    },
                                    "matchesRegexp": {
                                      "type": "string",
                                      "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                      "title": "Expectation: Matches Regular Expression"
                                    },
                                    "cdnHit": {
                                      "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                      "anyOf": [
                                        {
                                          "type": "boolean"
                                        },
                                        {
                                          "type": "string"
                                        }
                                      ],
                                      "title": "Expectation: Is CDN Hit"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Expect plugin expectations"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "additionalProperties": true,
                        "title": "Perform a GET request"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "post": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "title": "URL"
                          },
                          "name": {
                            "type": "string",
                            "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                            "title": "URL name"
                          },
                          "headers": {
                            "type": "object",
                            "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Headers"
                          },
                          "cookie": {
                            "type": "object",
                            "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Cookies"
                          },
                          "followRedirect": {
                            "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Disable redirect following"
                          },
                          "qs": {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Query string object"
                          },
                          "gzip": {
                            "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                            "default": true,
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Compression"
                          },
                          "capture": {
                            "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                            "anyOf": [
                              {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "json": {
                                        "type": "string",
                                        "title": "Jsonpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "json"
                                    ],
                                    "additionalProperties": true,
                                    "title": "JSON Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "xpath": {
                                        "type": "string",
                                        "title": "Xpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "xpath"
                                    ],
                                    "additionalProperties": true,
                                    "title": "XPath Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "regexp": {
                                        "type": "string",
                                        "title": "Regular expression"
                                      },
                                      "group": {
                                        "description": "Named or Integer Index capturing group",
                                        "anyOf": [
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Regex Group"
                                      },
                                      "flags": {
                                        "type": "object",
                                        "description": "Flags for the regular expression",
                                        "properties": {},
                                        "additionalProperties": true
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "regexp"
                                    ],
                                    "additionalProperties": true,
                                    "title": "RegExp Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "header": {
                                        "type": "string",
                                        "description": "Allows you to set the name of the response header whose value you want to capture.",
                                        "title": "Header name"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "header"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Header Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "selector": {
                                        "type": "string",
                                        "title": "Cheerio element selector"
                                      },
                                      "attr": {
                                        "type": "string",
                                        "title": "Attribute Name"
                                      },
                                      "index": {
                                        "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                        "anyOf": [
                                          {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          {
                                            "type": "string",
                                            "enum": [
                                              "last",
                                              "random"
                                            ]
                                          }
                                        ],
                                        "title": "Desired Index"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "selector"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Selector (Cheerio) Capture"
                                  }
                                ]
                              },
                              {
                                "type": "array",
                                "items": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "json": {
                                          "type": "string",
                                          "title": "Jsonpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "json"
                                      ],
                                      "additionalProperties": true,
                                      "title": "JSON Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "xpath": {
                                          "type": "string",
                                          "title": "Xpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "xpath"
                                      ],
                                      "additionalProperties": true,
                                      "title": "XPath Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "regexp": {
                                          "type": "string",
                                          "title": "Regular expression"
                                        },
                                        "group": {
                                          "description": "Named or Integer Index capturing group",
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Regex Group"
                                        },
                                        "flags": {
                                          "type": "object",
                                          "description": "Flags for the regular expression",
                                          "properties": {},
                                          "additionalProperties": true
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "regexp"
                                      ],
                                      "additionalProperties": true,
                                      "title": "RegExp Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "header": {
                                          "type": "string",
                                          "description": "Allows you to set the name of the response header whose value you want to capture.",
                                          "title": "Header name"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "header"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Header Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "selector": {
                                          "type": "string",
                                          "title": "Cheerio element selector"
                                        },
                                        "attr": {
                                          "type": "string",
                                          "title": "Attribute Name"
                                        },
                                        "index": {
                                          "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                          "anyOf": [
                                            {
                                              "anyOf": [
                                                {
                                                  "type": "number"
                                                },
                                                {
                                                  "type": "string"
                                                }
                                              ]
                                            },
                                            {
                                              "type": "string",
                                              "enum": [
                                                "last",
                                                "random"
                                              ]
                                            }
                                          ],
                                          "title": "Desired Index"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "selector"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Selector (Cheerio) Capture"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Capture"
                          },
                          "match": {
                            "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "json": {
                                    "type": "string",
                                    "description": "The part of the response to compare.",
                                    "title": "JSON"
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The expected value.",
                                    "title": "Value"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "json": {
                                      "type": "string",
                                      "description": "The part of the response to compare.",
                                      "title": "JSON"
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The expected value.",
                                      "title": "Value"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Match"
                          },
                          "auth": {
                            "type": "object",
                            "properties": {
                              "user": {
                                "type": "string",
                                "title": "Username"
                              },
                              "pass": {
                                "type": "string",
                                "title": "Password"
                              }
                            },
                            "additionalProperties": true,
                            "title": "Basic authentication"
                          },
                          "beforeRequest": {
                            "description": "Functions to run before every request is sent.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "Before Request"
                          },
                          "afterResponse": {
                            "description": "Functions to run after every response is received.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "After Response"
                          },
                          "ifTrue": {
                            "type": "string",
                            "description": "Expression that controls when to execute this request.",
                            "title": "Request Condition"
                          },
                          "expect": {
                            "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "statusCode": {
                                    "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Status Code"
                                  },
                                  "notStatusCode": {
                                    "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Not Status Code"
                                  },
                                  "contentType": {
                                    "type": "string",
                                    "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                    "title": "Expectation: Content type"
                                  },
                                  "hasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Has Property"
                                  },
                                  "notHasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Not Has Property"
                                  },
                                  "equals": {
                                    "type": "array",
                                    "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Equals"
                                  },
                                  "hasHeader": {
                                    "type": "string",
                                    "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "title": "Expectation: Has Header"
                                  },
                                  "headerEquals": {
                                    "type": "array",
                                    "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Header Equals"
                                  },
                                  "matchesRegexp": {
                                    "type": "string",
                                    "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                    "title": "Expectation: Matches Regular Expression"
                                  },
                                  "cdnHit": {
                                    "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ],
                                    "title": "Expectation: Is CDN Hit"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "statusCode": {
                                      "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Status Code"
                                    },
                                    "notStatusCode": {
                                      "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Not Status Code"
                                    },
                                    "contentType": {
                                      "type": "string",
                                      "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                      "title": "Expectation: Content type"
                                    },
                                    "hasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Has Property"
                                    },
                                    "notHasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Not Has Property"
                                    },
                                    "equals": {
                                      "type": "array",
                                      "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Equals"
                                    },
                                    "hasHeader": {
                                      "type": "string",
                                      "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "title": "Expectation: Has Header"
                                    },
                                    "headerEquals": {
                                      "type": "array",
                                      "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Header Equals"
                                    },
                                    "matchesRegexp": {
                                      "type": "string",
                                      "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                      "title": "Expectation: Matches Regular Expression"
                                    },
                                    "cdnHit": {
                                      "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                      "anyOf": [
                                        {
                                          "type": "boolean"
                                        },
                                        {
                                          "type": "string"
                                        }
                                      ],
                                      "title": "Expectation: Is CDN Hit"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Expect plugin expectations"
                          },
                          "json": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ],
                            "title": "JSON response body"
                          },
                          "body": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ],
                            "title": "Raw response body"
                          },
                          "form": {
                            "type": "object",
                            "description": "https://www.artillery.io/docs/reference/engines/http#url-encoded-forms-applicationx-www-form-urlencoded",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Url-encoded Form"
                          },
                          "formData": {
                            "type": "object",
                            "description": "https://www.artillery.io/docs/reference/engines/http#multipart-forms-multipartform-data",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Multipart Forms"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "additionalProperties": true,
                        "title": "Perform a POST request"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "put": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "title": "URL"
                          },
                          "name": {
                            "type": "string",
                            "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                            "title": "URL name"
                          },
                          "headers": {
                            "type": "object",
                            "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Headers"
                          },
                          "cookie": {
                            "type": "object",
                            "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Cookies"
                          },
                          "followRedirect": {
                            "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Disable redirect following"
                          },
                          "qs": {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Query string object"
                          },
                          "gzip": {
                            "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                            "default": true,
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Compression"
                          },
                          "capture": {
                            "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                            "anyOf": [
                              {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "json": {
                                        "type": "string",
                                        "title": "Jsonpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "json"
                                    ],
                                    "additionalProperties": true,
                                    "title": "JSON Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "xpath": {
                                        "type": "string",
                                        "title": "Xpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "xpath"
                                    ],
                                    "additionalProperties": true,
                                    "title": "XPath Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "regexp": {
                                        "type": "string",
                                        "title": "Regular expression"
                                      },
                                      "group": {
                                        "description": "Named or Integer Index capturing group",
                                        "anyOf": [
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Regex Group"
                                      },
                                      "flags": {
                                        "type": "object",
                                        "description": "Flags for the regular expression",
                                        "properties": {},
                                        "additionalProperties": true
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "regexp"
                                    ],
                                    "additionalProperties": true,
                                    "title": "RegExp Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "header": {
                                        "type": "string",
                                        "description": "Allows you to set the name of the response header whose value you want to capture.",
                                        "title": "Header name"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "header"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Header Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "selector": {
                                        "type": "string",
                                        "title": "Cheerio element selector"
                                      },
                                      "attr": {
                                        "type": "string",
                                        "title": "Attribute Name"
                                      },
                                      "index": {
                                        "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                        "anyOf": [
                                          {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          {
                                            "type": "string",
                                            "enum": [
                                              "last",
                                              "random"
                                            ]
                                          }
                                        ],
                                        "title": "Desired Index"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "selector"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Selector (Cheerio) Capture"
                                  }
                                ]
                              },
                              {
                                "type": "array",
                                "items": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "json": {
                                          "type": "string",
                                          "title": "Jsonpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "json"
                                      ],
                                      "additionalProperties": true,
                                      "title": "JSON Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "xpath": {
                                          "type": "string",
                                          "title": "Xpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "xpath"
                                      ],
                                      "additionalProperties": true,
                                      "title": "XPath Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "regexp": {
                                          "type": "string",
                                          "title": "Regular expression"
                                        },
                                        "group": {
                                          "description": "Named or Integer Index capturing group",
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Regex Group"
                                        },
                                        "flags": {
                                          "type": "object",
                                          "description": "Flags for the regular expression",
                                          "properties": {},
                                          "additionalProperties": true
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "regexp"
                                      ],
                                      "additionalProperties": true,
                                      "title": "RegExp Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "header": {
                                          "type": "string",
                                          "description": "Allows you to set the name of the response header whose value you want to capture.",
                                          "title": "Header name"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "header"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Header Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "selector": {
                                          "type": "string",
                                          "title": "Cheerio element selector"
                                        },
                                        "attr": {
                                          "type": "string",
                                          "title": "Attribute Name"
                                        },
                                        "index": {
                                          "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                          "anyOf": [
                                            {
                                              "anyOf": [
                                                {
                                                  "type": "number"
                                                },
                                                {
                                                  "type": "string"
                                                }
                                              ]
                                            },
                                            {
                                              "type": "string",
                                              "enum": [
                                                "last",
                                                "random"
                                              ]
                                            }
                                          ],
                                          "title": "Desired Index"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "selector"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Selector (Cheerio) Capture"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Capture"
                          },
                          "match": {
                            "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "json": {
                                    "type": "string",
                                    "description": "The part of the response to compare.",
                                    "title": "JSON"
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The expected value.",
                                    "title": "Value"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "json": {
                                      "type": "string",
                                      "description": "The part of the response to compare.",
                                      "title": "JSON"
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The expected value.",
                                      "title": "Value"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Match"
                          },
                          "auth": {
                            "type": "object",
                            "properties": {
                              "user": {
                                "type": "string",
                                "title": "Username"
                              },
                              "pass": {
                                "type": "string",
                                "title": "Password"
                              }
                            },
                            "additionalProperties": true,
                            "title": "Basic authentication"
                          },
                          "beforeRequest": {
                            "description": "Functions to run before every request is sent.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "Before Request"
                          },
                          "afterResponse": {
                            "description": "Functions to run after every response is received.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "After Response"
                          },
                          "ifTrue": {
                            "type": "string",
                            "description": "Expression that controls when to execute this request.",
                            "title": "Request Condition"
                          },
                          "expect": {
                            "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "statusCode": {
                                    "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Status Code"
                                  },
                                  "notStatusCode": {
                                    "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Not Status Code"
                                  },
                                  "contentType": {
                                    "type": "string",
                                    "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                    "title": "Expectation: Content type"
                                  },
                                  "hasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Has Property"
                                  },
                                  "notHasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Not Has Property"
                                  },
                                  "equals": {
                                    "type": "array",
                                    "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Equals"
                                  },
                                  "hasHeader": {
                                    "type": "string",
                                    "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "title": "Expectation: Has Header"
                                  },
                                  "headerEquals": {
                                    "type": "array",
                                    "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Header Equals"
                                  },
                                  "matchesRegexp": {
                                    "type": "string",
                                    "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                    "title": "Expectation: Matches Regular Expression"
                                  },
                                  "cdnHit": {
                                    "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ],
                                    "title": "Expectation: Is CDN Hit"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "statusCode": {
                                      "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Status Code"
                                    },
                                    "notStatusCode": {
                                      "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Not Status Code"
                                    },
                                    "contentType": {
                                      "type": "string",
                                      "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                      "title": "Expectation: Content type"
                                    },
                                    "hasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Has Property"
                                    },
                                    "notHasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Not Has Property"
                                    },
                                    "equals": {
                                      "type": "array",
                                      "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Equals"
                                    },
                                    "hasHeader": {
                                      "type": "string",
                                      "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "title": "Expectation: Has Header"
                                    },
                                    "headerEquals": {
                                      "type": "array",
                                      "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Header Equals"
                                    },
                                    "matchesRegexp": {
                                      "type": "string",
                                      "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                      "title": "Expectation: Matches Regular Expression"
                                    },
                                    "cdnHit": {
                                      "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                      "anyOf": [
                                        {
                                          "type": "boolean"
                                        },
                                        {
                                          "type": "string"
                                        }
                                      ],
                                      "title": "Expectation: Is CDN Hit"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Expect plugin expectations"
                          },
                          "json": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ],
                            "title": "JSON response body"
                          },
                          "body": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ],
                            "title": "Raw response body"
                          },
                          "form": {
                            "type": "object",
                            "description": "https://www.artillery.io/docs/reference/engines/http#url-encoded-forms-applicationx-www-form-urlencoded",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Url-encoded Form"
                          },
                          "formData": {
                            "type": "object",
                            "description": "https://www.artillery.io/docs/reference/engines/http#multipart-forms-multipartform-data",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Multipart Forms"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "additionalProperties": true,
                        "title": "Perform a PUT request"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "patch": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "title": "URL"
                          },
                          "name": {
                            "type": "string",
                            "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                            "title": "URL name"
                          },
                          "headers": {
                            "type": "object",
                            "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Headers"
                          },
                          "cookie": {
                            "type": "object",
                            "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Cookies"
                          },
                          "followRedirect": {
                            "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Disable redirect following"
                          },
                          "qs": {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Query string object"
                          },
                          "gzip": {
                            "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                            "default": true,
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Compression"
                          },
                          "capture": {
                            "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                            "anyOf": [
                              {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "json": {
                                        "type": "string",
                                        "title": "Jsonpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "json"
                                    ],
                                    "additionalProperties": true,
                                    "title": "JSON Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "xpath": {
                                        "type": "string",
                                        "title": "Xpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "xpath"
                                    ],
                                    "additionalProperties": true,
                                    "title": "XPath Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "regexp": {
                                        "type": "string",
                                        "title": "Regular expression"
                                      },
                                      "group": {
                                        "description": "Named or Integer Index capturing group",
                                        "anyOf": [
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Regex Group"
                                      },
                                      "flags": {
                                        "type": "object",
                                        "description": "Flags for the regular expression",
                                        "properties": {},
                                        "additionalProperties": true
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "regexp"
                                    ],
                                    "additionalProperties": true,
                                    "title": "RegExp Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "header": {
                                        "type": "string",
                                        "description": "Allows you to set the name of the response header whose value you want to capture.",
                                        "title": "Header name"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "header"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Header Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "selector": {
                                        "type": "string",
                                        "title": "Cheerio element selector"
                                      },
                                      "attr": {
                                        "type": "string",
                                        "title": "Attribute Name"
                                      },
                                      "index": {
                                        "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                        "anyOf": [
                                          {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          {
                                            "type": "string",
                                            "enum": [
                                              "last",
                                              "random"
                                            ]
                                          }
                                        ],
                                        "title": "Desired Index"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "selector"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Selector (Cheerio) Capture"
                                  }
                                ]
                              },
                              {
                                "type": "array",
                                "items": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "json": {
                                          "type": "string",
                                          "title": "Jsonpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "json"
                                      ],
                                      "additionalProperties": true,
                                      "title": "JSON Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "xpath": {
                                          "type": "string",
                                          "title": "Xpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "xpath"
                                      ],
                                      "additionalProperties": true,
                                      "title": "XPath Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "regexp": {
                                          "type": "string",
                                          "title": "Regular expression"
                                        },
                                        "group": {
                                          "description": "Named or Integer Index capturing group",
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Regex Group"
                                        },
                                        "flags": {
                                          "type": "object",
                                          "description": "Flags for the regular expression",
                                          "properties": {},
                                          "additionalProperties": true
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "regexp"
                                      ],
                                      "additionalProperties": true,
                                      "title": "RegExp Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "header": {
                                          "type": "string",
                                          "description": "Allows you to set the name of the response header whose value you want to capture.",
                                          "title": "Header name"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "header"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Header Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "selector": {
                                          "type": "string",
                                          "title": "Cheerio element selector"
                                        },
                                        "attr": {
                                          "type": "string",
                                          "title": "Attribute Name"
                                        },
                                        "index": {
                                          "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                          "anyOf": [
                                            {
                                              "anyOf": [
                                                {
                                                  "type": "number"
                                                },
                                                {
                                                  "type": "string"
                                                }
                                              ]
                                            },
                                            {
                                              "type": "string",
                                              "enum": [
                                                "last",
                                                "random"
                                              ]
                                            }
                                          ],
                                          "title": "Desired Index"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "selector"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Selector (Cheerio) Capture"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Capture"
                          },
                          "match": {
                            "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "json": {
                                    "type": "string",
                                    "description": "The part of the response to compare.",
                                    "title": "JSON"
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The expected value.",
                                    "title": "Value"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "json": {
                                      "type": "string",
                                      "description": "The part of the response to compare.",
                                      "title": "JSON"
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The expected value.",
                                      "title": "Value"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Match"
                          },
                          "auth": {
                            "type": "object",
                            "properties": {
                              "user": {
                                "type": "string",
                                "title": "Username"
                              },
                              "pass": {
                                "type": "string",
                                "title": "Password"
                              }
                            },
                            "additionalProperties": true,
                            "title": "Basic authentication"
                          },
                          "beforeRequest": {
                            "description": "Functions to run before every request is sent.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "Before Request"
                          },
                          "afterResponse": {
                            "description": "Functions to run after every response is received.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "After Response"
                          },
                          "ifTrue": {
                            "type": "string",
                            "description": "Expression that controls when to execute this request.",
                            "title": "Request Condition"
                          },
                          "expect": {
                            "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "statusCode": {
                                    "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Status Code"
                                  },
                                  "notStatusCode": {
                                    "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Not Status Code"
                                  },
                                  "contentType": {
                                    "type": "string",
                                    "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                    "title": "Expectation: Content type"
                                  },
                                  "hasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Has Property"
                                  },
                                  "notHasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Not Has Property"
                                  },
                                  "equals": {
                                    "type": "array",
                                    "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Equals"
                                  },
                                  "hasHeader": {
                                    "type": "string",
                                    "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "title": "Expectation: Has Header"
                                  },
                                  "headerEquals": {
                                    "type": "array",
                                    "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Header Equals"
                                  },
                                  "matchesRegexp": {
                                    "type": "string",
                                    "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                    "title": "Expectation: Matches Regular Expression"
                                  },
                                  "cdnHit": {
                                    "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ],
                                    "title": "Expectation: Is CDN Hit"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "statusCode": {
                                      "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Status Code"
                                    },
                                    "notStatusCode": {
                                      "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Not Status Code"
                                    },
                                    "contentType": {
                                      "type": "string",
                                      "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                      "title": "Expectation: Content type"
                                    },
                                    "hasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Has Property"
                                    },
                                    "notHasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Not Has Property"
                                    },
                                    "equals": {
                                      "type": "array",
                                      "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Equals"
                                    },
                                    "hasHeader": {
                                      "type": "string",
                                      "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "title": "Expectation: Has Header"
                                    },
                                    "headerEquals": {
                                      "type": "array",
                                      "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Header Equals"
                                    },
                                    "matchesRegexp": {
                                      "type": "string",
                                      "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                      "title": "Expectation: Matches Regular Expression"
                                    },
                                    "cdnHit": {
                                      "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                      "anyOf": [
                                        {
                                          "type": "boolean"
                                        },
                                        {
                                          "type": "string"
                                        }
                                      ],
                                      "title": "Expectation: Is CDN Hit"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Expect plugin expectations"
                          },
                          "json": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ],
                            "title": "JSON response body"
                          },
                          "body": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ],
                            "title": "Raw response body"
                          },
                          "form": {
                            "type": "object",
                            "description": "https://www.artillery.io/docs/reference/engines/http#url-encoded-forms-applicationx-www-form-urlencoded",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Url-encoded Form"
                          },
                          "formData": {
                            "type": "object",
                            "description": "https://www.artillery.io/docs/reference/engines/http#multipart-forms-multipartform-data",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Multipart Forms"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "additionalProperties": true,
                        "title": "Perform a PATCH request"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "delete": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "title": "URL"
                          },
                          "name": {
                            "type": "string",
                            "description": "Descriptive name for your URL. Certain plugins and features use this name instead of the full URL due to dynamic request urls.",
                            "title": "URL name"
                          },
                          "headers": {
                            "type": "object",
                            "description": "Headers to be used in this request. Replace *. with your header name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Headers"
                          },
                          "cookie": {
                            "type": "object",
                            "description": "Cookies to be used in this request. Replace *. with your cookie name, and set string value.",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Request Cookies"
                          },
                          "followRedirect": {
                            "description": "Artillery follows redirects by default.\nSet this option to `false` to stop following redirects.",
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Disable redirect following"
                          },
                          "qs": {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Query string object"
                          },
                          "gzip": {
                            "description": "Control the automatic response decompression that Artillery performs.\nhttps://www.artillery.io/docs/reference/engines/http#compressed-responses-gzip",
                            "default": true,
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Compression"
                          },
                          "capture": {
                            "description": "Capture and reuse parts of a response\nhttps://www.artillery.io/docs/reference/engines/http#extracting-and-re-using-parts-of-a-response-request-chaining",
                            "anyOf": [
                              {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "json": {
                                        "type": "string",
                                        "title": "Jsonpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "json"
                                    ],
                                    "additionalProperties": true,
                                    "title": "JSON Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "xpath": {
                                        "type": "string",
                                        "title": "Xpath expression"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "xpath"
                                    ],
                                    "additionalProperties": true,
                                    "title": "XPath Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "regexp": {
                                        "type": "string",
                                        "title": "Regular expression"
                                      },
                                      "group": {
                                        "description": "Named or Integer Index capturing group",
                                        "anyOf": [
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Regex Group"
                                      },
                                      "flags": {
                                        "type": "object",
                                        "description": "Flags for the regular expression",
                                        "properties": {},
                                        "additionalProperties": true
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "regexp"
                                    ],
                                    "additionalProperties": true,
                                    "title": "RegExp Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "header": {
                                        "type": "string",
                                        "description": "Allows you to set the name of the response header whose value you want to capture.",
                                        "title": "Header name"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "header"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Header Capture"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "selector": {
                                        "type": "string",
                                        "title": "Cheerio element selector"
                                      },
                                      "attr": {
                                        "type": "string",
                                        "title": "Attribute Name"
                                      },
                                      "index": {
                                        "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                        "anyOf": [
                                          {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          {
                                            "type": "string",
                                            "enum": [
                                              "last",
                                              "random"
                                            ]
                                          }
                                        ],
                                        "title": "Desired Index"
                                      },
                                      "as": {
                                        "type": "string",
                                        "title": "Name your capture"
                                      },
                                      "strict": {
                                        "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                        "anyOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ],
                                        "title": "Strict?"
                                      }
                                    },
                                    "required": [
                                      "selector"
                                    ],
                                    "additionalProperties": true,
                                    "title": "Selector (Cheerio) Capture"
                                  }
                                ]
                              },
                              {
                                "type": "array",
                                "items": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "json": {
                                          "type": "string",
                                          "title": "Jsonpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "json"
                                      ],
                                      "additionalProperties": true,
                                      "title": "JSON Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "xpath": {
                                          "type": "string",
                                          "title": "Xpath expression"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "xpath"
                                      ],
                                      "additionalProperties": true,
                                      "title": "XPath Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "regexp": {
                                          "type": "string",
                                          "title": "Regular expression"
                                        },
                                        "group": {
                                          "description": "Named or Integer Index capturing group",
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Regex Group"
                                        },
                                        "flags": {
                                          "type": "object",
                                          "description": "Flags for the regular expression",
                                          "properties": {},
                                          "additionalProperties": true
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "regexp"
                                      ],
                                      "additionalProperties": true,
                                      "title": "RegExp Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "header": {
                                          "type": "string",
                                          "description": "Allows you to set the name of the response header whose value you want to capture.",
                                          "title": "Header name"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "header"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Header Capture"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "selector": {
                                          "type": "string",
                                          "title": "Cheerio element selector"
                                        },
                                        "attr": {
                                          "type": "string",
                                          "title": "Attribute Name"
                                        },
                                        "index": {
                                          "description": "Grap element at specific index, last index or at random (otherwise, first one found).",
                                          "anyOf": [
                                            {
                                              "anyOf": [
                                                {
                                                  "type": "number"
                                                },
                                                {
                                                  "type": "string"
                                                }
                                              ]
                                            },
                                            {
                                              "type": "string",
                                              "enum": [
                                                "last",
                                                "random"
                                              ]
                                            }
                                          ],
                                          "title": "Desired Index"
                                        },
                                        "as": {
                                          "type": "string",
                                          "title": "Name your capture"
                                        },
                                        "strict": {
                                          "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                          "anyOf": [
                                            {
                                              "type": "boolean"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ],
                                          "title": "Strict?"
                                        }
                                      },
                                      "required": [
                                        "selector"
                                      ],
                                      "additionalProperties": true,
                                      "title": "Selector (Cheerio) Capture"
                                    }
                                  ]
                                }
                              }
                            ],
                            "title": "Capture"
                          },
                          "match": {
                            "description": "(Deprecated) Response validation criteria. Use capture and expect instead",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "json": {
                                    "type": "string",
                                    "description": "The part of the response to compare.",
                                    "title": "JSON"
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The expected value.",
                                    "title": "Value"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "json": {
                                      "type": "string",
                                      "description": "The part of the response to compare.",
                                      "title": "JSON"
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The expected value.",
                                      "title": "Value"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Match"
                          },
                          "auth": {
                            "type": "object",
                            "properties": {
                              "user": {
                                "type": "string",
                                "title": "Username"
                              },
                              "pass": {
                                "type": "string",
                                "title": "Password"
                              }
                            },
                            "additionalProperties": true,
                            "title": "Basic authentication"
                          },
                          "beforeRequest": {
                            "description": "Functions to run before every request is sent.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "Before Request"
                          },
                          "afterResponse": {
                            "description": "Functions to run after every response is received.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "After Response"
                          },
                          "ifTrue": {
                            "type": "string",
                            "description": "Expression that controls when to execute this request.",
                            "title": "Request Condition"
                          },
                          "expect": {
                            "description": "More information: https://www.artillery.io/docs/reference/extensions/expect#expectations",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "statusCode": {
                                    "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Status Code"
                                  },
                                  "notStatusCode": {
                                    "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "title": "Expectation: Not Status Code"
                                  },
                                  "contentType": {
                                    "type": "string",
                                    "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                    "title": "Expectation: Content type"
                                  },
                                  "hasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Has Property"
                                  },
                                  "notHasProperty": {
                                    "type": "string",
                                    "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                    "title": "Expectation: Not Has Property"
                                  },
                                  "equals": {
                                    "type": "array",
                                    "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Equals"
                                  },
                                  "hasHeader": {
                                    "type": "string",
                                    "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                    "title": "Expectation: Has Header"
                                  },
                                  "headerEquals": {
                                    "type": "array",
                                    "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                    "items": {
                                      "type": "string"
                                    },
                                    "title": "Expectation: Header Equals"
                                  },
                                  "matchesRegexp": {
                                    "type": "string",
                                    "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                    "title": "Expectation: Matches Regular Expression"
                                  },
                                  "cdnHit": {
                                    "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ],
                                    "title": "Expectation: Is CDN Hit"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "statusCode": {
                                      "description": "Check the response status code.\nIf a list of status codes is provided, check that the response status code is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#statuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Status Code"
                                    },
                                    "notStatusCode": {
                                      "description": "Check the response status code does not equal given status code.\nIf a list of status codes is provided, check that the response status code is not present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#notstatuscode",
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "title": "Expectation: Not Status Code"
                                    },
                                    "contentType": {
                                      "type": "string",
                                      "description": "Check that the value of the `Content-Type` response header.\nhttps://www.artillery.io/docs/reference/extensions/expect#contenttype",
                                      "title": "Expectation: Content type"
                                    },
                                    "hasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object has the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Has Property"
                                    },
                                    "notHasProperty": {
                                      "type": "string",
                                      "description": "Check that the response object doesn't have the given property.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasproperty-and-nothasproperty",
                                      "title": "Expectation: Not Has Property"
                                    },
                                    "equals": {
                                      "type": "array",
                                      "description": "Check that two or more values are the same.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Equals"
                                    },
                                    "hasHeader": {
                                      "type": "string",
                                      "description": "Check that the response contains the given header.\nhttps://www.artillery.io/docs/reference/extensions/expect#hasheader",
                                      "title": "Expectation: Has Header"
                                    },
                                    "headerEquals": {
                                      "type": "array",
                                      "description": "Check that the response contains a header and its value matches is present in the list.\nhttps://www.artillery.io/docs/reference/extensions/expect#headerequals",
                                      "items": {
                                        "type": "string"
                                      },
                                      "title": "Expectation: Header Equals"
                                    },
                                    "matchesRegexp": {
                                      "type": "string",
                                      "description": "Check that the response matches a regular expression.\nhttps://www.artillery.io/docs/reference/extensions/expect#matchesregexp",
                                      "title": "Expectation: Matches Regular Expression"
                                    },
                                    "cdnHit": {
                                      "description": "Check the presence of a cache hit/miss header from a CDN.\nhttps://www.artillery.io/docs/reference/extensions/expect#cdnhit",
                                      "anyOf": [
                                        {
                                          "type": "boolean"
                                        },
                                        {
                                          "type": "string"
                                        }
                                      ],
                                      "title": "Expectation: Is CDN Hit"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Expect plugin expectations"
                          },
                          "json": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ],
                            "title": "JSON response body"
                          },
                          "body": {
                            "type": [
                              "array",
                              "boolean",
                              "number",
                              "object",
                              "string",
                              "null"
                            ],
                            "title": "Raw response body"
                          },
                          "form": {
                            "type": "object",
                            "description": "https://www.artillery.io/docs/reference/engines/http#url-encoded-forms-applicationx-www-form-urlencoded",
                            "properties": {
                              "/.*/": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "additionalProperties": true,
                            "patternProperties": {
                              ".*": {
                                "type": "string",
                                "properties": {},
                                "required": [],
                                "additionalProperties": true
                              }
                            },
                            "title": "Url-encoded Form"
                          },
                          "formData": {
                            "type": "object",
                            "description": "https://www.artillery.io/docs/reference/engines/http#multipart-forms-multipartform-data",
                            "properties": {},
                            "additionalProperties": true,
                            "title": "Multipart Forms"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "additionalProperties": true,
                        "title": "Perform a DELETE request"
                      }
                    },
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "emit": {
                        "description": "Supports emitting action as an array, or by providing channel and data.\nMore information: https://www.artillery.io/docs/reference/engines/socketio#scenario-actions-and-configuration",
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "channel": {
                                "type": "string",
                                "description": "The name of the Socket.IO channel to emit an event to.\nIf using array mode, send as first argument instead.",
                                "title": "Channel"
                              },
                              "data": {
                                "description": "The data to emit as a string or object (or more generally, a serializable data structure).",
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {},
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                ],
                                "title": "Data"
                              }
                            },
                            "additionalProperties": true
                          },
                          {
                            "type": "array",
                            "items": {
                              "description": "The data to emit as a string or object (or more generally, a serializable data structure).",
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {},
                                  "additionalProperties": true
                                },
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              ],
                              "title": "Data"
                            }
                          }
                        ],
                        "title": "Emit Action"
                      },
                      "response": {
                        "type": "object",
                        "properties": {
                          "on": {
                            "type": "string",
                            "description": "The name of the event to listen to.",
                            "title": "Event Name"
                          },
                          "channel": {
                            "type": "string",
                            "description": "The name of the channel where the response is received.",
                            "title": "Channel"
                          },
                          "data": {
                            "description": "The data to verify is in the response.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "Data"
                          },
                          "args": {
                            "description": "Assert that the response emits these arguments.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "Response Arguments"
                          },
                          "match": {
                            "description": "Match the response exactly to the value provided.",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "json": {
                                    "type": "string",
                                    "description": "The part of the response to compare.",
                                    "title": "JSON"
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The expected value.",
                                    "title": "Value"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "json": {
                                      "type": "string",
                                      "description": "The part of the response to compare.",
                                      "title": "JSON"
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The expected value.",
                                      "title": "Value"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Match"
                          },
                          "capture": {
                            "type": "object",
                            "properties": {
                              "json": {
                                "type": "string",
                                "title": "Jsonpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "json"
                            ],
                            "additionalProperties": true,
                            "title": "JSON Capture"
                          }
                        },
                        "additionalProperties": true
                      },
                      "acknowledge": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "description": "The data to verify is in the acknowledge.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "Data"
                          },
                          "args": {
                            "description": "Assert that the acknowledge callback was sent with these arguments.",
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ],
                            "title": "Acknowledge Arguments"
                          },
                          "match": {
                            "description": "Match the response exactly to the value provided.",
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "json": {
                                    "type": "string",
                                    "description": "The part of the response to compare.",
                                    "title": "JSON"
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The expected value.",
                                    "title": "Value"
                                  }
                                },
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "json": {
                                      "type": "string",
                                      "description": "The part of the response to compare.",
                                      "title": "JSON"
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The expected value.",
                                      "title": "Value"
                                    }
                                  },
                                  "additionalProperties": true
                                }
                              }
                            ],
                            "title": "Match"
                          },
                          "capture": {
                            "type": "object",
                            "properties": {
                              "json": {
                                "type": "string",
                                "title": "Jsonpath expression"
                              },
                              "as": {
                                "type": "string",
                                "title": "Name your capture"
                              },
                              "strict": {
                                "description": "Captures are strict by default, so if a capture fails (no match), no subsequent request will run. You can configure that behaviour with this option.",
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "title": "Strict?"
                              }
                            },
                            "required": [
                              "json"
                            ],
                            "additionalProperties": true,
                            "title": "JSON Capture"
                          }
                        },
                        "additionalProperties": true
                      },
                      "namespace": {
                        "type": "string",
                        "description": "Optional namespace to use for emitting the event.",
                        "title": "Namespace"
                      }
                    },
                    "additionalProperties": true
                  }
                ]
              },
              "title": "Loop (SocketIo)"
            },
            "whileTrue": {
              "type": "string",
              "description": "Control the loop using custom logic:\nhttps://www.artillery.io/docs/reference/engines/http#looping-through-an-array",
              "title": "Loop While True"
            },
            "count": {
              "description": "https://www.artillery.io/docs/reference/engines/http#looping-through-an-array",
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "title": "Loop N times"
            },
            "over": {
              "description": "https://www.artillery.io/docs/reference/engines/http#looping-through-an-array",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ],
              "title": "Loop over array"
            }
          },
          "additionalProperties": true
        }
      ]
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}