// Auto-generated MCP tools from OpenAPI specification
// This file is generated by generate_mcp_tools.py - DO NOT EDIT MANUALLY

export interface EndpointTool {
    name: string;
    description: string;
    instructions: string;
    path: string;
    method: string;
    pathParamsSchema?: object;
    queryParamsSchema?: object;
    bodySchema?: object;
}

export const mcpEndpointTools: EndpointTool[] = [
    {
        name: "queryDocumentation",
        description: "query Windmill AI documentation assistant (EE only)",
        instructions: "",
        path: "/inkeep",
        method: "POST",
        pathParamsSchema: undefined,
        queryParamsSchema: undefined,
        bodySchema: {
        "type": "object",
        "properties": {
                "query": {
                        "type": "string",
                        "description": "The documentation query to send to the AI assistant"
                }
        },
        "required": [
                "query"
        ]
}
    },
    {
        name: "createVariable",
        description: "create variable",
        instructions: "",
        path: "/w/{workspace}/variables/create",
        method: "POST",
        pathParamsSchema: undefined,
        queryParamsSchema: {
        "type": "object",
        "properties": {
                "already_encrypted": {
                        "type": "boolean",
                        "description": "whether the variable is already encrypted (default false)"
                }
        },
        "required": []
},
        bodySchema: {
        "type": "object",
        "properties": {
                "path": {
                        "type": "string",
                        "description": "The path to the variable"
                },
                "value": {
                        "type": "string",
                        "description": "The value of the variable"
                },
                "is_secret": {
                        "type": "boolean",
                        "description": "Whether the variable is a secret"
                },
                "description": {
                        "type": "string",
                        "description": "The description of the variable"
                },
                "account": {
                        "type": "integer",
                        "description": "The account identifier"
                },
                "is_oauth": {
                        "type": "boolean",
                        "description": "Whether the variable is an OAuth variable"
                },
                "expires_at": {
                        "type": "string",
                        "description": "The expiration date of the variable",
                        "format": "date-time"
                }
        },
        "required": [
                "path",
                "value",
                "is_secret",
                "description"
        ]
}
    },
    {
        name: "deleteVariable",
        description: "delete variable",
        instructions: "",
        path: "/w/{workspace}/variables/delete/{path}",
        method: "DELETE",
        pathParamsSchema: {
        "type": "object",
        "properties": {
                "path": {
                        "type": "string"
                }
        },
        "required": [
                "path"
        ]
},
        queryParamsSchema: undefined,
        bodySchema: undefined
    },
    {
        name: "updateVariable",
        description: "update variable",
        instructions: "",
        path: "/w/{workspace}/variables/update/{path}",
        method: "POST",
        pathParamsSchema: {
        "type": "object",
        "properties": {
                "path": {
                        "type": "string"
                }
        },
        "required": [
                "path"
        ]
},
        queryParamsSchema: {
        "type": "object",
        "properties": {
                "already_encrypted": {
                        "type": "boolean",
                        "description": "whether the variable is already encrypted (default false)"
                }
        },
        "required": []
},
        bodySchema: {
        "type": "object",
        "properties": {
                "path": {
                        "type": "string",
                        "description": "The path to the variable"
                },
                "value": {
                        "type": "string",
                        "description": "The new value of the variable"
                },
                "is_secret": {
                        "type": "boolean",
                        "description": "Whether the variable is a secret"
                },
                "description": {
                        "type": "string",
                        "description": "The new description of the variable"
                }
        }
}
    },
    {
        name: "getVariable",
        description: "get variable",
        instructions: "",
        path: "/w/{workspace}/variables/get/{path}",
        method: "GET",
        pathParamsSchema: {
        "type": "object",
        "properties": {
                "path": {
                        "type": "string"
                }
        },
        "required": [
                "path"
        ]
},
        queryParamsSchema: {
        "type": "object",
        "properties": {
                "decrypt_secret": {
                        "type": "boolean",
                        "description": "ask to decrypt secret if this variable is secret\n(if not secret no effect, default: true)\n"
                },
                "include_encrypted": {
                        "type": "boolean",
                        "description": "ask to include the encrypted value if secret and decrypt secret is not true (default: false)\n"
                }
        },
        "required": []
},
        bodySchema: undefined
    },
    {
        name: "listVariable",
        description: "list variables",
        instructions: "",
        path: "/w/{workspace}/variables/list",
        method: "GET",
        pathParamsSchema: undefined,
        queryParamsSchema: {
        "type": "object",
        "properties": {
                "path_start": {
                        "type": "string",
                        "description": "filter variables by path prefix"
                },
                "page": {
                        "type": "integer",
                        "description": "which page to return (start at 1, default 1)"
                },
                "per_page": {
                        "type": "integer",
                        "description": "number of items to return for a given page (default 30, max 100)"
                }
        },
        "required": []
},
        bodySchema: undefined
    },
    {
        name: "createResource",
        description: "create resource",
        instructions: "",
        path: "/w/{workspace}/resources/create",
        method: "POST",
        pathParamsSchema: undefined,
        queryParamsSchema: {
        "type": "object",
        "properties": {
                "update_if_exists": {
                        "type": "boolean",
                        "description": "update the resource if it already exists (default false)"
                }
        },
        "required": []
},
        bodySchema: {
        "type": "object",
        "properties": {
                "path": {
                        "type": "string",
                        "description": "The path to the resource"
                },
                "value": {},
                "description": {
                        "type": "string",
                        "description": "The description of the resource"
                },
                "resource_type": {
                        "type": "string",
                        "description": "The resource_type associated with the resource"
                }
        },
        "required": [
                "path",
                "value",
                "resource_type"
        ]
}
    },
    {
        name: "deleteResource",
        description: "delete resource",
        instructions: "",
        path: "/w/{workspace}/resources/delete/{path}",
        method: "DELETE",
        pathParamsSchema: {
        "type": "object",
        "properties": {
                "path": {
                        "type": "string"
                }
        },
        "required": [
                "path"
        ]
},
        queryParamsSchema: undefined,
        bodySchema: undefined
    },
    {
        name: "updateResource",
        description: "update resource",
        instructions: "",
        path: "/w/{workspace}/resources/update/{path}",
        method: "POST",
        pathParamsSchema: {
        "type": "object",
        "properties": {
                "path": {
                        "type": "string"
                }
        },
        "required": [
                "path"
        ]
},
        queryParamsSchema: undefined,
        bodySchema: {
        "type": "object",
        "properties": {
                "path": {
                        "type": "string",
                        "description": "The path to the resource"
                },
                "description": {
                        "type": "string",
                        "description": "The new description of the resource"
                },
                "value": {},
                "resource_type": {
                        "type": "string",
                        "description": "The new resource_type to be associated with the resource"
                }
        }
}
    },
    {
        name: "getResource",
        description: "get resource",
        instructions: "",
        path: "/w/{workspace}/resources/get/{path}",
        method: "GET",
        pathParamsSchema: {
        "type": "object",
        "properties": {
                "path": {
                        "type": "string"
                }
        },
        "required": [
                "path"
        ]
},
        queryParamsSchema: undefined,
        bodySchema: undefined
    },
    {
        name: "listResource",
        description: "list resources",
        instructions: "",
        path: "/w/{workspace}/resources/list",
        method: "GET",
        pathParamsSchema: undefined,
        queryParamsSchema: {
        "type": "object",
        "properties": {
                "page": {
                        "type": "integer",
                        "description": "which page to return (start at 1, default 1)"
                },
                "per_page": {
                        "type": "integer",
                        "description": "number of items to return for a given page (default 30, max 100)"
                },
                "resource_type": {
                        "type": "string",
                        "description": "resource_types to list from, separated by ',',"
                },
                "resource_type_exclude": {
                        "type": "string",
                        "description": "resource_types to not list from, separated by ',',"
                },
                "path_start": {
                        "type": "string",
                        "description": "filter resources by path prefix"
                }
        },
        "required": []
},
        bodySchema: undefined
    },
    {
        name: "listResourceType",
        description: "list resource_types",
        instructions: "",
        path: "/w/{workspace}/resources/type/list",
        method: "GET",
        pathParamsSchema: undefined,
        queryParamsSchema: undefined,
        bodySchema: undefined
    },
    {
        name: "listScripts",
        description: "list all scripts",
        instructions: "",
        path: "/w/{workspace}/scripts/list",
        method: "GET",
        pathParamsSchema: undefined,
        queryParamsSchema: {
        "type": "object",
        "properties": {
                "page": {
                        "type": "integer",
                        "description": "which page to return (start at 1, default 1)"
                },
                "per_page": {
                        "type": "integer",
                        "description": "number of items to return for a given page (default 30, max 100)"
                },
                "order_desc": {
                        "type": "boolean",
                        "description": "order by desc order (default true)"
                },
                "created_by": {
                        "type": "string",
                        "description": "mask to filter exact matching user creator"
                },
                "path_start": {
                        "type": "string",
                        "description": "mask to filter matching starting path"
                },
                "path_exact": {
                        "type": "string",
                        "description": "mask to filter exact matching path"
                },
                "first_parent_hash": {
                        "type": "string",
                        "description": "mask to filter scripts whom first direct parent has exact hash"
                },
                "last_parent_hash": {
                        "type": "string",
                        "description": "mask to filter scripts whom last parent in the chain has exact hash.\nBeware that each script stores only a limited number of parents. Hence\nthe last parent hash for a script is not necessarily its top-most parent.\nTo find the top-most parent you will have to jump from last to last hash\n until finding the parent\n"
                },
                "parent_hash": {
                        "type": "string",
                        "description": "is the hash present in the array of stored parent hashes for this script.\nThe same warning applies than for last_parent_hash. A script only store a\nlimited number of direct parent\n"
                },
                "show_archived": {
                        "type": "boolean",
                        "description": "(default false)\nshow only the archived files.\nwhen multiple archived hash share the same path, only the ones with the latest create_at\nare\ned.\n"
                },
                "include_without_main": {
                        "type": "boolean",
                        "description": "(default false)\ninclude scripts without an exported main function\n"
                },
                "include_draft_only": {
                        "type": "boolean",
                        "description": "(default false)\ninclude scripts that have no deployed version\n"
                },
                "is_template": {
                        "type": "boolean",
                        "description": "(default regardless)\nif true show only the templates\nif false show only the non templates\nif not defined, show all regardless of if the script is a template\n"
                },
                "kinds": {
                        "type": "string",
                        "description": "(default regardless)\nscript kinds to filter, split by comma\n"
                },
                "starred_only": {
                        "type": "boolean",
                        "description": "(default false)\nshow only the starred items\n"
                },
                "with_deployment_msg": {
                        "type": "boolean",
                        "description": "(default false)\ninclude deployment message\n"
                },
                "languages": {
                        "type": "string",
                        "description": "Filter to only include scripts written in the given languages.\nAccepts multiple values as a comma-separated list.\n"
                },
                "without_description": {
                        "type": "boolean",
                        "description": "(default false)\nIf true, the description field will be omitted from the response.\n"
                }
        },
        "required": []
},
        bodySchema: undefined
    },
    {
        name: "getScriptByPath",
        description: "get script by path",
        instructions: "",
        path: "/w/{workspace}/scripts/get/p/{path}",
        method: "GET",
        pathParamsSchema: {
        "type": "object",
        "properties": {
                "path": {
                        "type": "string"
                }
        },
        "required": [
                "path"
        ]
},
        queryParamsSchema: {
        "type": "object",
        "properties": {
                "with_starred_info": {
                        "type": "boolean"
                }
        },
        "required": []
},
        bodySchema: undefined
    },
    {
        name: "listFlows",
        description: "list all flows",
        instructions: "",
        path: "/w/{workspace}/flows/list",
        method: "GET",
        pathParamsSchema: undefined,
        queryParamsSchema: {
        "type": "object",
        "properties": {
                "page": {
                        "type": "integer",
                        "description": "which page to return (start at 1, default 1)"
                },
                "per_page": {
                        "type": "integer",
                        "description": "number of items to return for a given page (default 30, max 100)"
                },
                "order_desc": {
                        "type": "boolean",
                        "description": "order by desc order (default true)"
                },
                "created_by": {
                        "type": "string",
                        "description": "mask to filter exact matching user creator"
                },
                "path_start": {
                        "type": "string",
                        "description": "mask to filter matching starting path"
                },
                "path_exact": {
                        "type": "string",
                        "description": "mask to filter exact matching path"
                },
                "show_archived": {
                        "type": "boolean",
                        "description": "(default false)\nshow only the archived files.\nwhen multiple archived hash share the same path, only the ones with the latest create_at\nare displayed.\n"
                },
                "starred_only": {
                        "type": "boolean",
                        "description": "(default false)\nshow only the starred items\n"
                },
                "include_draft_only": {
                        "type": "boolean",
                        "description": "(default false)\ninclude items that have no deployed version\n"
                },
                "with_deployment_msg": {
                        "type": "boolean",
                        "description": "(default false)\ninclude deployment message\n"
                },
                "without_description": {
                        "type": "boolean",
                        "description": "(default false)\nIf true, the description field will be omitted from the response.\n"
                }
        },
        "required": []
},
        bodySchema: undefined
    },
    {
        name: "getFlowByPath",
        description: "get flow by path",
        instructions: "",
        path: "/w/{workspace}/flows/get/{path}",
        method: "GET",
        pathParamsSchema: {
        "type": "object",
        "properties": {
                "path": {
                        "type": "string"
                }
        },
        "required": [
                "path"
        ]
},
        queryParamsSchema: {
        "type": "object",
        "properties": {
                "with_starred_info": {
                        "type": "boolean"
                }
        },
        "required": []
},
        bodySchema: undefined
    },
    {
        name: "runScriptPreviewAndWaitResult",
        description: "run script preview and wait for result",
        instructions: "Allows testing a script before deploying it. For typescript code, the language to send is either bun or deno. By default, send bun if no deno specific code is detected.",
        path: "/w/{workspace}/jobs/run_wait_result/preview",
        method: "POST",
        pathParamsSchema: undefined,
        queryParamsSchema: undefined,
        bodySchema: {
        "type": "object",
        "properties": {
                "content": {
                        "type": "string",
                        "description": "The code to run"
                },
                "path": {
                        "type": "string",
                        "description": "The path to the script"
                },
                "script_hash": {
                        "type": "string",
                        "description": "The hash of the script"
                },
                "args": {
                        "type": "object",
                        "description": "The arguments to pass to the script or flow",
                        "additionalProperties": {}
                },
                "language": {
                        "type": "string",
                        "enum": [
                                "python3",
                                "deno",
                                "go",
                                "bash",
                                "powershell",
                                "postgresql",
                                "mysql",
                                "bigquery",
                                "snowflake",
                                "mssql",
                                "oracledb",
                                "graphql",
                                "nativets",
                                "bun",
                                "php",
                                "rust",
                                "ansible",
                                "csharp",
                                "nu",
                                "java",
                                "ruby",
                                "duckdb"
                        ]
                },
                "tag": {
                        "type": "string"
                },
                "kind": {
                        "type": "string",
                        "enum": [
                                "code",
                                "identity",
                                "http"
                        ]
                },
                "dedicated_worker": {
                        "type": "boolean"
                },
                "lock": {
                        "type": "string"
                }
        },
        "required": [
                "args",
                "content",
                "language"
        ]
}
    },
    {
        name: "listQueue",
        description: "list all queued jobs",
        instructions: "",
        path: "/w/{workspace}/jobs/queue/list",
        method: "GET",
        pathParamsSchema: undefined,
        queryParamsSchema: {
        "type": "object",
        "properties": {
                "order_desc": {
                        "type": "boolean",
                        "description": "order by desc order (default true)"
                },
                "created_by": {
                        "type": "string",
                        "description": "mask to filter exact matching user creator"
                },
                "parent_job": {
                        "type": "string",
                        "format": "uuid",
                        "description": "The parent job that is at the origin and responsible for the execution of this script if any"
                },
                "worker": {
                        "type": "string",
                        "description": "worker this job was ran on"
                },
                "script_path_exact": {
                        "type": "string",
                        "description": "mask to filter exact matching path"
                },
                "script_path_start": {
                        "type": "string",
                        "description": "mask to filter matching starting path"
                },
                "schedule_path": {
                        "type": "string",
                        "description": "mask to filter by schedule path"
                },
                "trigger_path": {
                        "type": "string",
                        "description": "mask to filter by trigger path"
                },
                "trigger_kind": {
                        "description": "trigger kind (schedule, http, websocket...)",
                        "type": "string",
                        "enum": [
                                "webhook",
                                "default_email",
                                "email",
                                "schedule",
                                "http",
                                "websocket",
                                "postgres",
                                "kafka",
                                "nats",
                                "mqtt",
                                "sqs",
                                "gcp"
                        ]
                },
                "script_hash": {
                        "type": "string",
                        "description": "mask to filter exact matching path"
                },
                "started_before": {
                        "type": "string",
                        "format": "date-time",
                        "description": "filter on started before (inclusive) timestamp"
                },
                "started_after": {
                        "type": "string",
                        "format": "date-time",
                        "description": "filter on started after (exclusive) timestamp"
                },
                "success": {
                        "type": "boolean",
                        "description": "filter on successful jobs"
                },
                "scheduled_for_before_now": {
                        "type": "boolean",
                        "description": "filter on jobs scheduled_for before now (hence waitinf for a worker)"
                },
                "job_kinds": {
                        "type": "string",
                        "description": "filter on job kind (values 'preview', 'script', 'dependencies', 'flow') separated by,"
                },
                "suspended": {
                        "type": "boolean",
                        "description": "filter on suspended jobs"
                },
                "running": {
                        "type": "boolean",
                        "description": "filter on running jobs"
                },
                "args": {
                        "type": "string",
                        "description": "filter on jobs containing those args as a json subset (@> in postgres)"
                },
                "result": {
                        "type": "string",
                        "description": "filter on jobs containing those result as a json subset (@> in postgres)"
                },
                "allow_wildcards": {
                        "type": "boolean",
                        "description": "allow wildcards (*) in the filter of label, tag, worker"
                },
                "tag": {
                        "type": "string",
                        "description": "filter on jobs with a given tag/worker group"
                },
                "page": {
                        "type": "integer",
                        "description": "which page to return (start at 1, default 1)"
                },
                "per_page": {
                        "type": "integer",
                        "description": "number of items to return for a given page (default 30, max 100)"
                },
                "all_workspaces": {
                        "type": "boolean",
                        "description": "get jobs from all workspaces (only valid if request come from the `admins` workspace)"
                },
                "is_not_schedule": {
                        "type": "boolean",
                        "description": "is not a scheduled job"
                }
        },
        "required": []
},
        bodySchema: undefined
    },
    {
        name: "listJobs",
        description: "list all jobs",
        instructions: "",
        path: "/w/{workspace}/jobs/list",
        method: "GET",
        pathParamsSchema: undefined,
        queryParamsSchema: {
        "type": "object",
        "properties": {
                "created_by": {
                        "type": "string",
                        "description": "mask to filter exact matching user creator"
                },
                "label": {
                        "type": "string",
                        "description": "mask to filter exact matching job's label (job labels are completed jobs with as a result an object containing a string in the array at key 'wm_labels')"
                },
                "worker": {
                        "type": "string",
                        "description": "worker this job was ran on"
                },
                "parent_job": {
                        "type": "string",
                        "format": "uuid",
                        "description": "The parent job that is at the origin and responsible for the execution of this script if any"
                },
                "script_path_exact": {
                        "type": "string",
                        "description": "mask to filter exact matching path"
                },
                "script_path_start": {
                        "type": "string",
                        "description": "mask to filter matching starting path"
                },
                "schedule_path": {
                        "type": "string",
                        "description": "mask to filter by schedule path"
                },
                "script_hash": {
                        "type": "string",
                        "description": "mask to filter exact matching path"
                },
                "started_before": {
                        "type": "string",
                        "format": "date-time",
                        "description": "filter on started before (inclusive) timestamp"
                },
                "started_after": {
                        "type": "string",
                        "format": "date-time",
                        "description": "filter on started after (exclusive) timestamp"
                },
                "created_before": {
                        "type": "string",
                        "format": "date-time",
                        "description": "filter on created before (inclusive) timestamp"
                },
                "created_after": {
                        "type": "string",
                        "format": "date-time",
                        "description": "filter on created after (exclusive) timestamp"
                },
                "completed_before": {
                        "type": "string",
                        "format": "date-time",
                        "description": "filter on started before (inclusive) timestamp"
                },
                "completed_after": {
                        "type": "string",
                        "format": "date-time",
                        "description": "filter on started after (exclusive) timestamp"
                },
                "created_before_queue": {
                        "type": "string",
                        "format": "date-time",
                        "description": "filter on jobs created before X for jobs in the queue only"
                },
                "created_after_queue": {
                        "type": "string",
                        "format": "date-time",
                        "description": "filter on jobs created after X for jobs in the queue only"
                },
                "running": {
                        "type": "boolean",
                        "description": "filter on running jobs"
                },
                "scheduled_for_before_now": {
                        "type": "boolean",
                        "description": "filter on jobs scheduled_for before now (hence waitinf for a worker)"
                },
                "job_kinds": {
                        "type": "string",
                        "description": "filter on job kind (values 'preview', 'script', 'dependencies', 'flow') separated by,"
                },
                "suspended": {
                        "type": "boolean",
                        "description": "filter on suspended jobs"
                },
                "args": {
                        "type": "string",
                        "description": "filter on jobs containing those args as a json subset (@> in postgres)"
                },
                "tag": {
                        "type": "string",
                        "description": "filter on jobs with a given tag/worker group"
                },
                "result": {
                        "type": "string",
                        "description": "filter on jobs containing those result as a json subset (@> in postgres)"
                },
                "allow_wildcards": {
                        "type": "boolean",
                        "description": "allow wildcards (*) in the filter of label, tag, worker"
                },
                "per_page": {
                        "type": "integer",
                        "description": "number of items to return for a given page (default 30, max 100)"
                },
                "trigger_kind": {
                        "description": "trigger kind (schedule, http, websocket...)",
                        "type": "string",
                        "enum": [
                                "webhook",
                                "default_email",
                                "email",
                                "schedule",
                                "http",
                                "websocket",
                                "postgres",
                                "kafka",
                                "nats",
                                "mqtt",
                                "sqs",
                                "gcp"
                        ]
                },
                "is_skipped": {
                        "type": "boolean",
                        "description": "is the job skipped"
                },
                "is_flow_step": {
                        "type": "boolean",
                        "description": "is the job a flow step"
                },
                "has_null_parent": {
                        "type": "boolean",
                        "description": "has null parent"
                },
                "success": {
                        "type": "boolean",
                        "description": "filter on successful jobs"
                },
                "all_workspaces": {
                        "type": "boolean",
                        "description": "get jobs from all workspaces (only valid if request come from the `admins` workspace)"
                },
                "is_not_schedule": {
                        "type": "boolean",
                        "description": "is not a scheduled job"
                }
        },
        "required": []
},
        bodySchema: undefined
    },
    {
        name: "createSchedule",
        description: "create schedule",
        instructions: "Creates a new schedule.\nThe schedule should include seconds.\nYou should get the schema of the script or flow before creating the schedule to correctly specify the arguments needed.\n",
        path: "/w/{workspace}/schedules/create",
        method: "POST",
        pathParamsSchema: undefined,
        queryParamsSchema: undefined,
        bodySchema: {
        "type": "object",
        "properties": {
                "path": {
                        "type": "string",
                        "description": "The path where the schedule will be created"
                },
                "schedule": {
                        "type": "string",
                        "description": "The cron schedule to trigger the script or flow. Should include seconds."
                },
                "timezone": {
                        "type": "string",
                        "description": "The timezone to use for the cron schedule"
                },
                "script_path": {
                        "type": "string",
                        "description": "The path to the script or flow to trigger"
                },
                "is_flow": {
                        "type": "boolean",
                        "description": "Whether the schedule is for a flow"
                },
                "args": {
                        "type": "object",
                        "description": "The arguments to pass to the script or flow",
                        "additionalProperties": {}
                },
                "enabled": {
                        "type": "boolean",
                        "description": "Whether the schedule is enabled"
                },
                "on_failure": {
                        "type": "string",
                        "description": "The path to the script or flow to trigger on failure"
                },
                "on_failure_times": {
                        "type": "number",
                        "description": "The number of times to retry on failure"
                },
                "on_failure_exact": {
                        "type": "boolean",
                        "description": "Whether the schedule should only run on the exact time"
                },
                "on_failure_extra_args": {
                        "type": "object",
                        "description": "The arguments to pass to the script or flow",
                        "additionalProperties": {}
                },
                "on_recovery": {
                        "type": "string",
                        "description": "The path to the script or flow to trigger on recovery"
                },
                "on_recovery_times": {
                        "type": "number",
                        "description": "The number of times to retry on recovery"
                },
                "on_recovery_extra_args": {
                        "type": "object",
                        "description": "The arguments to pass to the script or flow",
                        "additionalProperties": {}
                },
                "on_success": {
                        "type": "string",
                        "description": "The path to the script or flow to trigger on success"
                },
                "on_success_extra_args": {
                        "type": "object",
                        "description": "The arguments to pass to the script or flow",
                        "additionalProperties": {}
                },
                "ws_error_handler_muted": {
                        "type": "boolean",
                        "description": "Whether the WebSocket error handler is muted"
                },
                "retry": {
                        "type": "object",
                        "description": "Retry configuration for failed module executions",
                        "properties": {
                                "constant": {
                                        "type": "object",
                                        "description": "Retry with constant delay between attempts",
                                        "properties": {
                                                "attempts": {
                                                        "type": "integer",
                                                        "description": "Number of retry attempts"
                                                },
                                                "seconds": {
                                                        "type": "integer",
                                                        "description": "Seconds to wait between retries"
                                                }
                                        }
                                },
                                "exponential": {
                                        "type": "object",
                                        "description": "Retry with exponential backoff (delay doubles each time)",
                                        "properties": {
                                                "attempts": {
                                                        "type": "integer",
                                                        "description": "Number of retry attempts"
                                                },
                                                "multiplier": {
                                                        "type": "integer",
                                                        "description": "Multiplier for exponential backoff"
                                                },
                                                "seconds": {
                                                        "type": "integer",
                                                        "minimum": 1,
                                                        "description": "Initial delay in seconds"
                                                },
                                                "random_factor": {
                                                        "type": "integer",
                                                        "minimum": 0,
                                                        "maximum": 100,
                                                        "description": "Random jitter percentage (0-100) to avoid thundering herd"
                                                }
                                        }
                                },
                                "retry_if": {
                                        "type": "object",
                                        "description": "Conditional retry based on error or result",
                                        "properties": {
                                                "expr": {
                                                        "type": "string",
                                                        "description": "JavaScript expression that returns true to retry. Has access to 'result' and 'error' variables"
                                                }
                                        },
                                        "required": [
                                                "expr"
                                        ]
                                }
                        }
                },
                "no_flow_overlap": {
                        "type": "boolean",
                        "description": "Whether the schedule should not run if a flow is already running"
                },
                "summary": {
                        "type": "string",
                        "description": "The summary of the schedule"
                },
                "description": {
                        "type": "string",
                        "description": "The description of the schedule"
                },
                "tag": {
                        "type": "string",
                        "description": "The tag of the schedule"
                },
                "paused_until": {
                        "type": "string",
                        "description": "The date and time the schedule will be paused until",
                        "format": "date-time"
                },
                "cron_version": {
                        "type": "string",
                        "description": "The version of the cron schedule to use (last is v2)"
                },
                "dynamic_skip": {
                        "type": "string",
                        "description": "Path to a script that validates scheduled datetimes. Receives scheduled_for datetime and returns boolean."
                }
        },
        "required": [
                "path",
                "schedule",
                "timezone",
                "script_path",
                "is_flow",
                "args"
        ]
}
    },
    {
        name: "updateSchedule",
        description: "update schedule",
        instructions: "Updates a schedule.\nThe schedule should include seconds.\nYou should get the schema of the script or flow before updating the schedule to correctly specify the arguments needed.\n",
        path: "/w/{workspace}/schedules/update/{path}",
        method: "POST",
        pathParamsSchema: {
        "type": "object",
        "properties": {
                "path": {
                        "type": "string"
                }
        },
        "required": [
                "path"
        ]
},
        queryParamsSchema: undefined,
        bodySchema: {
        "type": "object",
        "properties": {
                "schedule": {
                        "type": "string",
                        "description": "The cron schedule to trigger the script or flow. Should include seconds."
                },
                "timezone": {
                        "type": "string",
                        "description": "The timezone to use for the cron schedule"
                },
                "args": {
                        "type": "object",
                        "description": "The arguments to pass to the script or flow",
                        "additionalProperties": {}
                },
                "on_failure": {
                        "type": "string",
                        "description": "The path to the script or flow to trigger on failure"
                },
                "on_failure_times": {
                        "type": "number",
                        "description": "The number of times to retry on failure"
                },
                "on_failure_exact": {
                        "type": "boolean",
                        "description": "Whether the schedule should only run on the exact time"
                },
                "on_failure_extra_args": {
                        "type": "object",
                        "description": "The arguments to pass to the script or flow",
                        "additionalProperties": {}
                },
                "on_recovery": {
                        "type": "string",
                        "description": "The path to the script or flow to trigger on recovery"
                },
                "on_recovery_times": {
                        "type": "number",
                        "description": "The number of times to retry on recovery"
                },
                "on_recovery_extra_args": {
                        "type": "object",
                        "description": "The arguments to pass to the script or flow",
                        "additionalProperties": {}
                },
                "on_success": {
                        "type": "string",
                        "description": "The path to the script or flow to trigger on success"
                },
                "on_success_extra_args": {
                        "type": "object",
                        "description": "The arguments to pass to the script or flow",
                        "additionalProperties": {}
                },
                "ws_error_handler_muted": {
                        "type": "boolean",
                        "description": "Whether the WebSocket error handler is muted"
                },
                "retry": {
                        "type": "object",
                        "description": "Retry configuration for failed module executions",
                        "properties": {
                                "constant": {
                                        "type": "object",
                                        "description": "Retry with constant delay between attempts",
                                        "properties": {
                                                "attempts": {
                                                        "type": "integer",
                                                        "description": "Number of retry attempts"
                                                },
                                                "seconds": {
                                                        "type": "integer",
                                                        "description": "Seconds to wait between retries"
                                                }
                                        }
                                },
                                "exponential": {
                                        "type": "object",
                                        "description": "Retry with exponential backoff (delay doubles each time)",
                                        "properties": {
                                                "attempts": {
                                                        "type": "integer",
                                                        "description": "Number of retry attempts"
                                                },
                                                "multiplier": {
                                                        "type": "integer",
                                                        "description": "Multiplier for exponential backoff"
                                                },
                                                "seconds": {
                                                        "type": "integer",
                                                        "minimum": 1,
                                                        "description": "Initial delay in seconds"
                                                },
                                                "random_factor": {
                                                        "type": "integer",
                                                        "minimum": 0,
                                                        "maximum": 100,
                                                        "description": "Random jitter percentage (0-100) to avoid thundering herd"
                                                }
                                        }
                                },
                                "retry_if": {
                                        "type": "object",
                                        "description": "Conditional retry based on error or result",
                                        "properties": {
                                                "expr": {
                                                        "type": "string",
                                                        "description": "JavaScript expression that returns true to retry. Has access to 'result' and 'error' variables"
                                                }
                                        },
                                        "required": [
                                                "expr"
                                        ]
                                }
                        }
                },
                "no_flow_overlap": {
                        "type": "boolean",
                        "description": "Whether the schedule should not run if a flow is already running"
                },
                "summary": {
                        "type": "string",
                        "description": "The summary of the schedule"
                },
                "description": {
                        "type": "string",
                        "description": "The description of the schedule"
                },
                "tag": {
                        "type": "string",
                        "description": "The tag of the schedule"
                },
                "paused_until": {
                        "type": "string",
                        "description": "The date and time the schedule will be paused until",
                        "format": "date-time"
                },
                "cron_version": {
                        "type": "string",
                        "description": "The version of the cron schedule to use (last is v2)"
                },
                "dynamic_skip": {
                        "type": "string",
                        "description": "Path to a script that validates scheduled datetimes. Receives scheduled_for datetime and returns boolean."
                }
        },
        "required": [
                "schedule",
                "timezone",
                "args"
        ]
}
    },
    {
        name: "deleteSchedule",
        description: "delete schedule",
        instructions: "",
        path: "/w/{workspace}/schedules/delete/{path}",
        method: "DELETE",
        pathParamsSchema: {
        "type": "object",
        "properties": {
                "path": {
                        "type": "string"
                }
        },
        "required": [
                "path"
        ]
},
        queryParamsSchema: undefined,
        bodySchema: undefined
    },
    {
        name: "getSchedule",
        description: "get schedule",
        instructions: "",
        path: "/w/{workspace}/schedules/get/{path}",
        method: "GET",
        pathParamsSchema: {
        "type": "object",
        "properties": {
                "path": {
                        "type": "string"
                }
        },
        "required": [
                "path"
        ]
},
        queryParamsSchema: undefined,
        bodySchema: undefined
    },
    {
        name: "listSchedules",
        description: "list schedules",
        instructions: "",
        path: "/w/{workspace}/schedules/list",
        method: "GET",
        pathParamsSchema: undefined,
        queryParamsSchema: {
        "type": "object",
        "properties": {
                "page": {
                        "type": "integer",
                        "description": "which page to return (start at 1, default 1)"
                },
                "per_page": {
                        "type": "integer",
                        "description": "number of items to return for a given page (default 30, max 100)"
                },
                "args": {
                        "type": "string",
                        "description": "filter on jobs containing those args as a json subset (@> in postgres)"
                },
                "path": {
                        "type": "string",
                        "description": "filter by path"
                },
                "is_flow": {
                        "type": "boolean",
                        "description": "filter schedules by whether they target a flow"
                },
                "path_start": {
                        "type": "string",
                        "description": "filter schedules by path prefix"
                }
        },
        "required": []
},
        bodySchema: undefined
    },
    {
        name: "listWorkers",
        description: "list workers",
        instructions: "",
        path: "/workers/list",
        method: "GET",
        pathParamsSchema: undefined,
        queryParamsSchema: {
        "type": "object",
        "properties": {
                "page": {
                        "type": "integer",
                        "description": "which page to return (start at 1, default 1)"
                },
                "per_page": {
                        "type": "integer",
                        "description": "number of items to return for a given page (default 30, max 100)"
                },
                "ping_since": {
                        "type": "integer",
                        "description": "number of seconds the worker must have had a last ping more recent of (default to 300)"
                }
        },
        "required": []
},
        bodySchema: undefined
    }
];
