// Package swagger Code generated by swaggo/swag. DO NOT EDIT
package swagger

import "github.com/swaggo/swag"

const docTemplate = `{
    "schemes": {{ marshal .Schemes }},
    "swagger": "2.0",
    "info": {
        "description": "{{escape .Description}}",
        "title": "{{.Title}}",
        "contact": {
            "name": "Bacalhau Team",
            "url": "https://github.com/bacalhau-project/bacalhau",
            "email": "team@bacalhau.org"
        },
        "license": {
            "name": "Apache 2.0",
            "url": "https://github.com/bacalhau-project/bacalhau/blob/main/LICENSE"
        },
        "version": "{{.Version}}"
    },
    "host": "{{.Host}}",
    "basePath": "{{.BasePath}}",
    "paths": {
        "/api/v1/agent/alive": {
            "get": {
                "produces": [
                    "text/plain"
                ],
                "tags": [
                    "Ops"
                ],
                "operationId": "agent/alive",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.IsAliveResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/agent/authconfig": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Ops"
                ],
                "summary": "Returns the OAuth2 configuration of the node.",
                "operationId": "agent/authconfig",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.GetAgentNodeAuthConfigResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/agent/config": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Ops"
                ],
                "summary": "Returns the current configuration of the node.",
                "operationId": "agent/config",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/types.Bacalhau"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/agent/debug": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Ops"
                ],
                "summary": "Returns debug information on what the current node is doing.",
                "operationId": "agent/debug",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.DebugInfo"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/agent/license": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Ops"
                ],
                "summary": "Returns the details of the current configured orchestrator license. Returns a 404 when no license is configured",
                "operationId": "agent/license",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.GetAgentLicenseResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/agent/node": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Ops"
                ],
                "summary": "Returns the info of the node.",
                "operationId": "agent/node",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.NodeInfo"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/agent/version": {
            "get": {
                "description": "See https://github.com/bacalhau-project/bacalhau/releases for a complete list of ` + "`" + `gitversion` + "`" + ` tags.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Ops"
                ],
                "summary": "Returns the build version running on the server.",
                "operationId": "agent/version",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.GetVersionResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/orchestrator/jobs": {
            "get": {
                "description": "Returns a list of jobs.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Orchestrator"
                ],
                "summary": "Returns a list of jobs.",
                "operationId": "orchestrator/listJobs",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Namespace to get the jobs for",
                        "name": "namespace",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit the number of jobs returned",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Token to get the next page of jobs",
                        "name": "next_token",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Reverse the order of the jobs",
                        "name": "reverse",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Order the jobs by the given field",
                        "name": "order_by",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.ListJobsResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            },
            "put": {
                "description": "Submits a job to the orchestrator.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Orchestrator"
                ],
                "summary": "Submits a job to the orchestrator.",
                "operationId": "orchestrator/putJob",
                "parameters": [
                    {
                        "description": "Job to submit",
                        "name": "putJobRequest",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/apimodels.PutJobRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.PutJobResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/orchestrator/jobs/diff": {
            "put": {
                "description": "Compares a submitted job spec with the existing job that has the same name, and returns the differences between them.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Orchestrator"
                ],
                "summary": "Compares a job spec with an existing job of the same name.",
                "operationId": "orchestrator/diffJob",
                "parameters": [
                    {
                        "description": "Job spec to compare with existing job",
                        "name": "diffJobRequest",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/apimodels.DiffJobRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.DiffJobResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/orchestrator/jobs/{id}": {
            "get": {
                "description": "Returns a job.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Orchestrator"
                ],
                "summary": "Returns a job.",
                "operationId": "orchestrator/getJob",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID to get the job for",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Takes history and executions as options. If empty will not include anything else.",
                        "name": "include",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Number of history or executions to fetch. Should be used in conjugation with include",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Job version to get. Defaults to 0.",
                        "name": "job_version",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.GetJobResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            },
            "delete": {
                "description": "Stops a job.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Orchestrator"
                ],
                "summary": "Stops a job.",
                "operationId": "orchestrator/stopJob",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID to stop the job for",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Reason for stopping the job",
                        "name": "reason",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.StopJobResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/orchestrator/jobs/{id}/executions": {
            "get": {
                "description": "Returns the executions of a job.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Orchestrator"
                ],
                "summary": "Returns the executions of a job.",
                "operationId": "orchestrator/jobExecutions",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID to get the job executions for",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Namespace to get the jobs for",
                        "name": "namespace",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit the number of executions returned",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Token to get the next page of executions",
                        "name": "next_token",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Reverse the order of the executions",
                        "name": "reverse",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Order the executions by the given field",
                        "name": "order_by",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.ListJobExecutionsResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/orchestrator/jobs/{id}/history": {
            "get": {
                "description": "Returns the history of a job.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Orchestrator"
                ],
                "summary": "Returns the history of a job.",
                "operationId": "orchestrator/listHistory",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID to get the job history for",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Only return history since this time",
                        "name": "since",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Only return history of this event type",
                        "name": "event_type",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Only return history of this execution ID",
                        "name": "execution_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Token to get the next page of the history events",
                        "name": "next_token",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.ListJobHistoryResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/orchestrator/jobs/{id}/logs": {
            "get": {
                "description": "Establishes a WebSocket connection to stream output from the job specified by ` + "`" + `id` + "`" + `\nThe stream will continue until either the client disconnects or the execution completes",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/octet-stream"
                ],
                "tags": [
                    "Orchestrator"
                ],
                "summary": "Streams the logs for a current job/execution via WebSocket",
                "operationId": "orchestrator/logs",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID of the job to stream logs for",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Fetch logs for a specific execution",
                        "name": "execution_id",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Fetch historical logs",
                        "name": "tail",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Follow the logs",
                        "name": "follow",
                        "in": "query"
                    }
                ],
                "responses": {
                    "101": {
                        "description": "Switching Protocols to WebSocket",
                        "schema": {
                            "$ref": "#/definitions/models.ExecutionLog"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/orchestrator/jobs/{id}/rerun": {
            "put": {
                "description": "Reruns a job with the specified job ID or name.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Orchestrator"
                ],
                "summary": "Reruns a job.",
                "operationId": "orchestrator/rerunJob",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID or name of the job to rerun",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Request to rerun job",
                        "name": "rerunJobRequest",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/apimodels.RerunJobRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.RerunJobResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/orchestrator/jobs/{id}/results": {
            "get": {
                "description": "Returns the results of a job.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Orchestrator"
                ],
                "summary": "Returns the results of a job.",
                "operationId": "orchestrator/jobResults",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID to get the job results for",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.ListJobResultsResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/orchestrator/jobs/{id}/versions": {
            "get": {
                "description": "Returns the versions of a job.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Orchestrator"
                ],
                "summary": "Returns the versions of a job.",
                "operationId": "orchestrator/jobVersions",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID or Name to get the job versions for",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Namespace of the job",
                        "name": "namespace",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit the number of job versions returned",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Token to get the next page of job versions",
                        "name": "next_token",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Reverse the order of the job versions",
                        "name": "reverse",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Order the job versions by the given field",
                        "name": "order_by",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.ListJobVersionsResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/orchestrator/nodes": {
            "get": {
                "description": "Returns a list of orchestrator nodes.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Orchestrator"
                ],
                "summary": "Returns a list of orchestrator nodes.",
                "operationId": "orchestrator/listNodes",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Limit the number of node returned",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Token to get the next page of nodes",
                        "name": "next_token",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Reverse the order of the nodes",
                        "name": "reverse",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Order the nodes by given field",
                        "name": "order_by",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter Approval",
                        "name": "filter_approval",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter Status",
                        "name": "filter-status",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.ListNodesResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/orchestrator/nodes/{id}": {
            "get": {
                "description": "Get an orchestrator node",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Orchestrator"
                ],
                "summary": "Get an orchestrator node",
                "operationId": "orchestrator/getNode",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID of the orchestrator node to fetch for.",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.GetNodeResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            },
            "put": {
                "description": "Update an orchestrator node.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Orchestrator"
                ],
                "summary": "Update an orchestrator node.",
                "operationId": "orchestrator/updateNode",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID of the orchestrator node.",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Put Node Request",
                        "name": "putNodeRequest",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/apimodels.PutNodeRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.PutNodeResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "apimodels.DiffJobRequest": {
            "type": "object",
            "properties": {
                "Job": {
                    "$ref": "#/definitions/models.Job"
                },
                "credential": {
                    "$ref": "#/definitions/apimodels.HTTPCredential"
                },
                "idempotencyToken": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                }
            }
        },
        "apimodels.DiffJobResponse": {
            "type": "object",
            "properties": {
                "Diff": {
                    "type": "string"
                },
                "Warnings": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "apimodels.GetAgentLicenseResponse": {
            "type": "object",
            "properties": {
                "aud": {
                    "description": "the ` + "`" + `aud` + "`" + ` (Audience) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.3",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "capabilities": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "customer_id": {
                    "type": "string"
                },
                "exp": {
                    "description": "the ` + "`" + `exp` + "`" + ` (Expiration Time) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.4",
                    "allOf": [
                        {
                            "$ref": "#/definitions/jwt.NumericDate"
                        }
                    ]
                },
                "iat": {
                    "description": "the ` + "`" + `iat` + "`" + ` (Issued At) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.6",
                    "allOf": [
                        {
                            "$ref": "#/definitions/jwt.NumericDate"
                        }
                    ]
                },
                "iss": {
                    "description": "the ` + "`" + `iss` + "`" + ` (Issuer) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.1",
                    "type": "string"
                },
                "jti": {
                    "description": "the ` + "`" + `jti` + "`" + ` (JWT ID) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.7",
                    "type": "string"
                },
                "license_id": {
                    "type": "string"
                },
                "license_type": {
                    "type": "string"
                },
                "license_version": {
                    "type": "string"
                },
                "metadata": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "nbf": {
                    "description": "the ` + "`" + `nbf` + "`" + ` (Not Before) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.5",
                    "allOf": [
                        {
                            "$ref": "#/definitions/jwt.NumericDate"
                        }
                    ]
                },
                "product": {
                    "description": "Add your custom license claims here",
                    "type": "string"
                },
                "sub": {
                    "description": "the ` + "`" + `sub` + "`" + ` (Subject) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.2",
                    "type": "string"
                }
            }
        },
        "apimodels.GetAgentNodeAuthConfigResponse": {
            "type": "object",
            "properties": {
                "config": {
                    "$ref": "#/definitions/types.Oauth2Config"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "apimodels.GetJobResponse": {
            "type": "object",
            "properties": {
                "Executions": {
                    "$ref": "#/definitions/apimodels.ListJobExecutionsResponse"
                },
                "History": {
                    "$ref": "#/definitions/apimodels.ListJobHistoryResponse"
                },
                "Job": {
                    "$ref": "#/definitions/models.Job"
                }
            }
        },
        "apimodels.GetNodeResponse": {
            "type": "object",
            "properties": {
                "Node": {
                    "$ref": "#/definitions/models.NodeState"
                }
            }
        },
        "apimodels.GetVersionResponse": {
            "type": "object",
            "properties": {
                "BuildDate": {
                    "type": "string",
                    "example": "2022-11-16T14:03:31Z"
                },
                "GOARCH": {
                    "type": "string",
                    "example": "amd64"
                },
                "GOOS": {
                    "type": "string",
                    "example": "linux"
                },
                "GitCommit": {
                    "type": "string",
                    "example": "d612b63108f2b5ce1ab2b9e02444eb1dac1d922d"
                },
                "GitVersion": {
                    "type": "string",
                    "example": "v0.3.12"
                },
                "Major": {
                    "type": "string",
                    "example": "0"
                },
                "Minor": {
                    "type": "string",
                    "example": "3"
                }
            }
        },
        "apimodels.HTTPCredential": {
            "type": "object",
            "properties": {
                "params": {
                    "description": "For authorization schemes that provide multiple values, a map of names to\nvalues providing the credential",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "scheme": {
                    "description": "An HTTP authorization scheme, such as one registered with IANA\nhttps://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml",
                    "type": "string"
                },
                "value": {
                    "description": "For authorization schemes that only provide a single value, such as\nBasic, the single string value providing the credential",
                    "type": "string"
                }
            }
        },
        "apimodels.IsAliveResponse": {
            "type": "object",
            "properties": {
                "Status": {
                    "type": "string"
                }
            }
        },
        "apimodels.ListJobExecutionsResponse": {
            "type": "object",
            "properties": {
                "Items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Execution"
                    }
                },
                "NextToken": {
                    "type": "string"
                }
            }
        },
        "apimodels.ListJobHistoryResponse": {
            "type": "object",
            "properties": {
                "Items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.JobHistory"
                    }
                },
                "NextToken": {
                    "type": "string"
                }
            }
        },
        "apimodels.ListJobResultsResponse": {
            "type": "object",
            "properties": {
                "Items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.SpecConfig"
                    }
                },
                "NextToken": {
                    "type": "string"
                }
            }
        },
        "apimodels.ListJobVersionsResponse": {
            "type": "object",
            "properties": {
                "Items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Job"
                    }
                },
                "NextToken": {
                    "type": "string"
                }
            }
        },
        "apimodels.ListJobsResponse": {
            "type": "object",
            "properties": {
                "Items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Job"
                    }
                },
                "NextToken": {
                    "type": "string"
                }
            }
        },
        "apimodels.ListNodesResponse": {
            "type": "object",
            "properties": {
                "NextToken": {
                    "type": "string"
                },
                "Nodes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.NodeState"
                    }
                }
            }
        },
        "apimodels.PutJobRequest": {
            "type": "object",
            "properties": {
                "Force": {
                    "type": "boolean"
                },
                "Job": {
                    "$ref": "#/definitions/models.Job"
                },
                "credential": {
                    "$ref": "#/definitions/apimodels.HTTPCredential"
                },
                "idempotencyToken": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                }
            }
        },
        "apimodels.PutJobResponse": {
            "type": "object",
            "properties": {
                "EvaluationID": {
                    "type": "string"
                },
                "JobID": {
                    "type": "string"
                },
                "Warnings": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "apimodels.PutNodeRequest": {
            "type": "object",
            "properties": {
                "Action": {
                    "type": "string"
                },
                "Message": {
                    "type": "string"
                },
                "NodeID": {
                    "type": "string"
                },
                "credential": {
                    "$ref": "#/definitions/apimodels.HTTPCredential"
                },
                "idempotencyToken": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                }
            }
        },
        "apimodels.PutNodeResponse": {
            "type": "object",
            "properties": {
                "Error": {
                    "type": "string"
                },
                "Success": {
                    "type": "boolean"
                }
            }
        },
        "apimodels.RerunJobRequest": {
            "type": "object",
            "properties": {
                "JobVersion": {
                    "type": "integer"
                },
                "Reason": {
                    "type": "string"
                },
                "credential": {
                    "$ref": "#/definitions/apimodels.HTTPCredential"
                },
                "idempotencyToken": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                }
            }
        },
        "apimodels.RerunJobResponse": {
            "type": "object",
            "properties": {
                "EvaluationID": {
                    "type": "string"
                },
                "JobID": {
                    "type": "string"
                },
                "JobVersion": {
                    "type": "integer"
                },
                "Warnings": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "apimodels.StopJobResponse": {
            "type": "object",
            "properties": {
                "EvaluationID": {
                    "type": "string"
                }
            }
        },
        "jwt.NumericDate": {
            "type": "object",
            "properties": {
                "time.Time": {
                    "type": "string"
                }
            }
        },
        "models.AllocatedResources": {
            "type": "object",
            "properties": {
                "Tasks": {
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/models.Resources"
                    }
                }
            }
        },
        "models.BuildVersionInfo": {
            "type": "object",
            "properties": {
                "BuildDate": {
                    "type": "string",
                    "example": "2022-11-16T14:03:31Z"
                },
                "GOARCH": {
                    "type": "string",
                    "example": "amd64"
                },
                "GOOS": {
                    "type": "string",
                    "example": "linux"
                },
                "GitCommit": {
                    "type": "string",
                    "example": "d612b63108f2b5ce1ab2b9e02444eb1dac1d922d"
                },
                "GitVersion": {
                    "type": "string",
                    "example": "v0.3.12"
                },
                "Major": {
                    "type": "string",
                    "example": "0"
                },
                "Minor": {
                    "type": "string",
                    "example": "3"
                }
            }
        },
        "models.ComputeNodeInfo": {
            "type": "object",
            "properties": {
                "AvailableCapacity": {
                    "$ref": "#/definitions/models.Resources"
                },
                "EnqueuedExecutions": {
                    "type": "integer"
                },
                "ExecutionEngines": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "MaxCapacity": {
                    "$ref": "#/definitions/models.Resources"
                },
                "MaxJobRequirements": {
                    "$ref": "#/definitions/models.Resources"
                },
                "Publishers": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "QueueCapacity": {
                    "$ref": "#/definitions/models.Resources"
                },
                "RunningExecutions": {
                    "type": "integer"
                },
                "StorageSources": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "address": {
                    "description": "Address is the network location where this compute node can be reached\nFormat: IPv4 or hostname (e.g., \"192.168.1.100\" or \"node1.example.com\")",
                    "type": "string"
                }
            }
        },
        "models.ConnectionState": {
            "type": "object",
            "properties": {
                "ConnectedSince": {
                    "description": "Connection tracking",
                    "type": "string"
                },
                "DisconnectedSince": {
                    "type": "string"
                },
                "LastComputeSeqNum": {
                    "description": "Message sequencing for reliable delivery",
                    "type": "integer"
                },
                "LastError": {
                    "type": "string"
                },
                "LastHeartbeat": {
                    "description": "Last successful heartbeat timestamp",
                    "type": "string"
                },
                "LastOrchestratorSeqNum": {
                    "description": "Last seq received from orchestrator",
                    "type": "integer"
                },
                "Status": {
                    "description": "Connection status",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.NodeConnectionState"
                        }
                    ]
                }
            }
        },
        "models.DebugInfo": {
            "type": "object",
            "properties": {
                "component": {
                    "type": "string"
                },
                "info": {}
            }
        },
        "models.Event": {
            "type": "object",
            "properties": {
                "Details": {
                    "description": "Any additional metadata that the system or user may need to know about\nthe event in order to handle it properly.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "Message": {
                    "description": "A human-readable string giving the user all the information they need to\nunderstand and respond to an Event, if a response is required.",
                    "type": "string"
                },
                "Timestamp": {
                    "description": "The moment the event occurred, which may be different to the moment it\nwas recorded.",
                    "type": "string"
                },
                "Topic": {
                    "description": "The topic of the event. See the documentation on EventTopic.",
                    "type": "string"
                }
            }
        },
        "models.Execution": {
            "type": "object",
            "properties": {
                "AllocatedResources": {
                    "description": "AllocatedResources is the total resources allocated for the execution tasks.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.AllocatedResources"
                        }
                    ]
                },
                "ComputeState": {
                    "description": "ComputeState observed state of the execution on the compute node",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.State-models_ExecutionStateType"
                        }
                    ]
                },
                "CreateTime": {
                    "description": "CreateTime is the time the execution has finished scheduling and been\nverified by the plan applier.",
                    "type": "integer"
                },
                "DesiredState": {
                    "description": "DesiredState of the execution on the compute node",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.State-models_ExecutionDesiredStateType"
                        }
                    ]
                },
                "EvalID": {
                    "description": "ID of the evaluation that generated this execution",
                    "type": "string"
                },
                "FollowupEvalID": {
                    "description": "FollowupEvalID captures a follow up evaluation created to handle a failed execution\nthat can be rescheduled in the future",
                    "type": "string"
                },
                "ID": {
                    "description": "ID of the execution (UUID)",
                    "type": "string"
                },
                "Job": {
                    "description": "TODO: evaluate using a copy of the job instead of a pointer",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.Job"
                        }
                    ]
                },
                "JobID": {
                    "description": "Job is the parent job of the task being allocated.\nThis is copied at execution time to avoid issues if the job\ndefinition is updated.",
                    "type": "string"
                },
                "JobVersion": {
                    "description": "JobVersion version of the job that this execution was created in",
                    "type": "integer"
                },
                "ModifyTime": {
                    "description": "ModifyTime is the time the execution was last updated.",
                    "type": "integer"
                },
                "Name": {
                    "description": "Name is a logical name of the execution.",
                    "type": "string"
                },
                "Namespace": {
                    "description": "Namespace is the namespace the execution is created in",
                    "type": "string"
                },
                "NextExecution": {
                    "description": "NextExecution is the execution that this execution is being replaced by",
                    "type": "string"
                },
                "NodeID": {
                    "description": "NodeID is the node this is being placed on",
                    "type": "string"
                },
                "PartitionIndex": {
                    "description": "PartitionIndex is the index of this execution in the job's total partitions (0-based)\nOnly relevant when Job.Count \u003e 1",
                    "type": "integer"
                },
                "PreviousExecution": {
                    "description": "PreviousExecution is the execution that this execution is replacing",
                    "type": "string"
                },
                "PublishedResult": {
                    "description": "the published results for this execution",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.SpecConfig"
                        }
                    ]
                },
                "Revision": {
                    "description": "Revision is increment each time the execution is updated.",
                    "type": "integer"
                },
                "RunOutput": {
                    "description": "RunOutput is the output of the run command\nTODO: evaluate removing this from execution spec in favour of calling ` + "`" + `bacalhau job logs` + "`" + `",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.RunCommandResult"
                        }
                    ]
                }
            }
        },
        "models.ExecutionDesiredStateType": {
            "type": "integer",
            "enum": [
                0,
                1,
                2
            ],
            "x-enum-varnames": [
                "ExecutionDesiredStatePending",
                "ExecutionDesiredStateRunning",
                "ExecutionDesiredStateStopped"
            ]
        },
        "models.ExecutionLog": {
            "type": "object",
            "properties": {
                "line": {
                    "type": "string"
                },
                "type": {
                    "$ref": "#/definitions/models.ExecutionLogType"
                }
            }
        },
        "models.ExecutionLogType": {
            "type": "integer",
            "enum": [
                0,
                1,
                2
            ],
            "x-enum-varnames": [
                "executionLogTypeUnknown",
                "ExecutionLogTypeSTDOUT",
                "ExecutionLogTypeSTDERR"
            ]
        },
        "models.ExecutionStateType": {
            "type": "integer",
            "enum": [
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11
            ],
            "x-enum-comments": {
                "ExecutionStateBidAccepted": "aka running"
            },
            "x-enum-varnames": [
                "ExecutionStateUndefined",
                "ExecutionStateNew",
                "ExecutionStateAskForBid",
                "ExecutionStateAskForBidAccepted",
                "ExecutionStateAskForBidRejected",
                "ExecutionStateBidAccepted",
                "ExecutionStateRunning",
                "ExecutionStatePublishing",
                "ExecutionStateBidRejected",
                "ExecutionStateCompleted",
                "ExecutionStateFailed",
                "ExecutionStateCancelled"
            ]
        },
        "models.GPU": {
            "type": "object",
            "properties": {
                "index": {
                    "description": "Self-reported index of the device in the system",
                    "type": "integer"
                },
                "memory": {
                    "description": "Total GPU memory in mebibytes (MiB)",
                    "type": "integer"
                },
                "name": {
                    "description": "Model name of the GPU e.g. Tesla T4",
                    "type": "string"
                },
                "pciaddress": {
                    "description": "PCI address of the device, in the format AAAA:BB:CC.C\nUsed to discover the correct device rendering cards",
                    "type": "string"
                },
                "vendor": {
                    "description": "Maker of the GPU, e.g. NVidia, AMD, Intel",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.GPUVendor"
                        }
                    ]
                }
            }
        },
        "models.GPUVendor": {
            "type": "string",
            "enum": [
                "NVIDIA",
                "AMD/ATI",
                "Intel"
            ],
            "x-enum-varnames": [
                "GPUVendorNvidia",
                "GPUVendorAMDATI",
                "GPUVendorIntel"
            ]
        },
        "models.InputSource": {
            "type": "object",
            "properties": {
                "Alias": {
                    "description": "Alias is an optional reference to this input source that can be used for\ndynamic linking to this input. (e.g. dynamic import in wasm by alias)",
                    "type": "string"
                },
                "Source": {
                    "description": "Source is the source of the artifact to be downloaded, e.g a URL, S3 bucket, etc.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.SpecConfig"
                        }
                    ]
                },
                "Target": {
                    "description": "Target is the path where the artifact should be mounted on",
                    "type": "string"
                }
            }
        },
        "models.Job": {
            "type": "object",
            "properties": {
                "Constraints": {
                    "description": "Constraints is a selector which must be true for the compute node to run this job.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.LabelSelectorRequirement"
                    }
                },
                "Count": {
                    "description": "Count is the number of replicas that should be scheduled.\nFor batch and service jobs:\n- If not present in JSON, defaults to 1\n- If explicitly set to 0, means stop all executions\n- If \u003e 0, specifies exact number of replicas\nFor daemon and ops jobs:\n- Values of 0 or 1 are ignored (job runs on all matching nodes)\n- Values \u003e 1 are invalid and will cause validation to fail",
                    "type": "integer"
                },
                "CreateTime": {
                    "type": "integer"
                },
                "ID": {
                    "description": "ID is a unique identifier assigned to this job.\nIt helps to distinguish jobs with the same name after they have been deleted and re-created.\nThe ID is generated by the server and should not be set directly by the client.",
                    "type": "string"
                },
                "Labels": {
                    "description": "Labels is used to associate arbitrary labels with this job, which can be used\nfor filtering.\nkey=value",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "Meta": {
                    "description": "Meta is used to associate arbitrary metadata with this job.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "ModifyTime": {
                    "type": "integer"
                },
                "Name": {
                    "description": "Name is the logical name of the job used to refer to it.\nSubmitting a job with the same name as an existing job will result in an\nupdate to the existing job.",
                    "type": "string"
                },
                "Namespace": {
                    "description": "Namespace is the namespace this job is running in.",
                    "type": "string"
                },
                "Priority": {
                    "description": "Priority defines the scheduling priority of this job.",
                    "type": "integer"
                },
                "Revision": {
                    "description": "Revision is a per-job monotonically increasing revision number that is incremented\non each update to the job's state or specification",
                    "type": "integer"
                },
                "State": {
                    "description": "State is the current state of the job.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.State-models_JobStateType"
                        }
                    ]
                },
                "Tasks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Task"
                    }
                },
                "Type": {
                    "description": "Type is the type of job this is, e.g. \"daemon\" or \"batch\".",
                    "type": "string"
                },
                "Version": {
                    "description": "Version is a per-job monotonically increasing version number that is incremented\non each job specification update.",
                    "type": "integer"
                }
            }
        },
        "models.JobHistory": {
            "type": "object",
            "properties": {
                "Event": {
                    "$ref": "#/definitions/models.Event"
                },
                "ExecutionID": {
                    "type": "string"
                },
                "ExecutionState": {
                    "description": "Deprecated: Left for backward compatibility with v1.4.x clients",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.StateChange-models_ExecutionStateType"
                        }
                    ]
                },
                "JobID": {
                    "type": "string"
                },
                "JobState": {
                    "description": "TODO: remove with v1.5\nDeprecated: Left for backward compatibility with v1.4.x clients",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.StateChange-models_JobStateType"
                        }
                    ]
                },
                "JobVersion": {
                    "type": "integer"
                },
                "SeqNum": {
                    "type": "integer"
                },
                "Time": {
                    "type": "string"
                },
                "Type": {
                    "$ref": "#/definitions/models.JobHistoryType"
                }
            }
        },
        "models.JobHistoryType": {
            "type": "integer",
            "enum": [
                0,
                1,
                2
            ],
            "x-enum-varnames": [
                "JobHistoryTypeUndefined",
                "JobHistoryTypeJobLevel",
                "JobHistoryTypeExecutionLevel"
            ]
        },
        "models.JobSelectionDataLocality": {
            "type": "integer",
            "enum": [
                0,
                1
            ],
            "x-enum-comments": {
                "Anywhere": "anywhere",
                "Local": "local"
            },
            "x-enum-varnames": [
                "Local",
                "Anywhere"
            ]
        },
        "models.JobStateType": {
            "type": "integer",
            "enum": [
                0,
                1,
                2,
                3,
                4,
                5,
                6
            ],
            "x-enum-varnames": [
                "JobStateTypeUndefined",
                "JobStateTypePending",
                "JobStateTypeQueued",
                "JobStateTypeRunning",
                "JobStateTypeCompleted",
                "JobStateTypeFailed",
                "JobStateTypeStopped"
            ]
        },
        "models.LabelSelectorRequirement": {
            "type": "object",
            "properties": {
                "Key": {
                    "description": "key is the label key that the selector applies to.",
                    "type": "string"
                },
                "Operator": {
                    "description": "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and KeyNotInImap.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/selection.Operator"
                        }
                    ]
                },
                "Values": {
                    "description": "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or KeyNotInImap,\nthe values array must be empty. This array is replaced during a strategic",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "models.Network": {
            "type": "integer",
            "enum": [
                0,
                1,
                2,
                3,
                4,
                5
            ],
            "x-enum-varnames": [
                "NetworkDefault",
                "NetworkNone",
                "NetworkHost",
                "NetworkFull",
                "NetworkHTTP",
                "NetworkBridge"
            ]
        },
        "models.NetworkConfig": {
            "type": "object",
            "properties": {
                "Domains": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "Ports": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Port"
                    }
                },
                "Type": {
                    "$ref": "#/definitions/models.Network"
                }
            }
        },
        "models.NodeConnectionState": {
            "type": "object",
            "properties": {
                "connection": {
                    "type": "integer",
                    "enum": [
                        0,
                        1
                    ],
                    "x-enum-varnames": [
                        "connected",
                        "disconnected"
                    ]
                }
            }
        },
        "models.NodeInfo": {
            "type": "object",
            "properties": {
                "BacalhauVersion": {
                    "$ref": "#/definitions/models.BuildVersionInfo"
                },
                "ComputeNodeInfo": {
                    "$ref": "#/definitions/models.ComputeNodeInfo"
                },
                "Labels": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "NodeID": {
                    "type": "string"
                },
                "NodeType": {
                    "$ref": "#/definitions/models.NodeType"
                },
                "SupportedProtocols": {
                    "description": "SupportedProtocols indicates which communication protocols this node supports",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Protocol"
                    }
                }
            }
        },
        "models.NodeMembershipState": {
            "type": "object",
            "properties": {
                "membership": {
                    "type": "integer",
                    "enum": [
                        0,
                        1,
                        2,
                        3
                    ],
                    "x-enum-varnames": [
                        "unknown",
                        "pending",
                        "approved",
                        "rejected"
                    ]
                }
            }
        },
        "models.NodeState": {
            "type": "object",
            "properties": {
                "Connection": {
                    "description": "Deprecated: Use ConnectionState.Status instead",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.NodeConnectionState"
                        }
                    ]
                },
                "ConnectionState": {
                    "description": "Connection and messaging state",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.ConnectionState"
                        }
                    ]
                },
                "Info": {
                    "description": "Durable node information",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.NodeInfo"
                        }
                    ]
                },
                "Membership": {
                    "$ref": "#/definitions/models.NodeMembershipState"
                }
            }
        },
        "models.NodeType": {
            "type": "integer",
            "enum": [
                0,
                1,
                2
            ],
            "x-enum-varnames": [
                "nodeTypeUndefined",
                "NodeTypeRequester",
                "NodeTypeCompute"
            ]
        },
        "models.Port": {
            "type": "object",
            "properties": {
                "HostNetwork": {
                    "description": "HostNetwork specifies which network interface to bind to.\nIf empty, defaults to \"0.0.0.0\" (all interfaces).\nCan be set to \"127.0.0.1\" to only allow local connections.",
                    "type": "string"
                },
                "Name": {
                    "description": "Name is a required identifier for this port mapping.\nIt will be used to create environment variables to inform the task\nabout its allocated ports.",
                    "type": "string"
                },
                "Static": {
                    "description": "Static is the host port to use. If not specified, a port will be\nauto-allocated from the compute node's port range",
                    "type": "integer"
                },
                "Target": {
                    "description": "Target is the port inside the task/container that should be exposed.\nOnly valid for Bridge network mode. If not specified in Bridge mode,\nit will default to the same value as the host port.",
                    "type": "integer"
                }
            }
        },
        "models.Protocol": {
            "type": "string",
            "enum": [
                "ncl/v1",
                "bprotocol/v2"
            ],
            "x-enum-varnames": [
                "ProtocolNCLV1",
                "ProtocolBProtocolV2"
            ]
        },
        "models.Resources": {
            "type": "object",
            "properties": {
                "CPU": {
                    "description": "CPU units",
                    "type": "number"
                },
                "Disk": {
                    "description": "Disk in bytes",
                    "type": "integer"
                },
                "GPU": {
                    "description": "GPU units",
                    "type": "integer"
                },
                "GPUs": {
                    "description": "GPU details",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.GPU"
                    }
                },
                "Memory": {
                    "description": "Memory in bytes",
                    "type": "integer"
                }
            }
        },
        "models.ResourcesConfig": {
            "type": "object",
            "properties": {
                "CPU": {
                    "description": "CPU https://github.com/BTBurke/k8sresource string",
                    "type": "string"
                },
                "Disk": {
                    "description": "Memory github.com/dustin/go-humanize string",
                    "type": "string"
                },
                "GPU": {
                    "type": "string"
                },
                "Memory": {
                    "description": "Memory github.com/dustin/go-humanize string",
                    "type": "string"
                }
            }
        },
        "models.ResultPath": {
            "type": "object",
            "properties": {
                "Name": {
                    "description": "Name",
                    "type": "string"
                },
                "Path": {
                    "description": "The path to the file/dir",
                    "type": "string"
                }
            }
        },
        "models.RunCommandResult": {
            "type": "object",
            "properties": {
                "ErrorMsg": {
                    "description": "Runner error",
                    "type": "string"
                },
                "ExitCode": {
                    "description": "exit code of the run.",
                    "type": "integer"
                },
                "StderrTruncated": {
                    "description": "bool describing if stderr was truncated",
                    "type": "boolean"
                },
                "Stdout": {
                    "description": "stdout of the run. Yaml provided for ` + "`" + `describe` + "`" + ` output",
                    "type": "string"
                },
                "StdoutTruncated": {
                    "description": "bool describing if stdout was truncated",
                    "type": "boolean"
                },
                "stderr": {
                    "description": "stderr of the run.",
                    "type": "string"
                }
            }
        },
        "models.SpecConfig": {
            "type": "object",
            "properties": {
                "Params": {
                    "description": "Params is a map of the config params",
                    "type": "object",
                    "additionalProperties": true
                },
                "Type": {
                    "description": "Type of the config",
                    "type": "string"
                }
            }
        },
        "models.State-models_ExecutionDesiredStateType": {
            "type": "object",
            "properties": {
                "Details": {
                    "description": "Details is a map of additional details about the state.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "Message": {
                    "description": "Message is a human readable message describing the state.",
                    "type": "string"
                },
                "StateType": {
                    "description": "StateType is the current state of the object.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.ExecutionDesiredStateType"
                        }
                    ]
                }
            }
        },
        "models.State-models_ExecutionStateType": {
            "type": "object",
            "properties": {
                "Details": {
                    "description": "Details is a map of additional details about the state.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "Message": {
                    "description": "Message is a human readable message describing the state.",
                    "type": "string"
                },
                "StateType": {
                    "description": "StateType is the current state of the object.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.ExecutionStateType"
                        }
                    ]
                }
            }
        },
        "models.State-models_JobStateType": {
            "type": "object",
            "properties": {
                "Details": {
                    "description": "Details is a map of additional details about the state.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "Message": {
                    "description": "Message is a human readable message describing the state.",
                    "type": "string"
                },
                "StateType": {
                    "description": "StateType is the current state of the object.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.JobStateType"
                        }
                    ]
                }
            }
        },
        "models.StateChange-models_ExecutionStateType": {
            "type": "object",
            "properties": {
                "New": {
                    "$ref": "#/definitions/models.ExecutionStateType"
                },
                "Previous": {
                    "$ref": "#/definitions/models.ExecutionStateType"
                }
            }
        },
        "models.StateChange-models_JobStateType": {
            "type": "object",
            "properties": {
                "New": {
                    "$ref": "#/definitions/models.JobStateType"
                },
                "Previous": {
                    "$ref": "#/definitions/models.JobStateType"
                }
            }
        },
        "models.Task": {
            "type": "object",
            "properties": {
                "Engine": {
                    "$ref": "#/definitions/models.SpecConfig"
                },
                "Env": {
                    "description": "Map of environment variables to be used by the driver.\nValues can be:\n- Direct value: \"debug-mode\"\n- Host env var: \"env:HOST_VAR\"",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "InputSources": {
                    "description": "InputSources is a list of remote artifacts to be downloaded before running the task\nand mounted into the task.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.InputSource"
                    }
                },
                "Meta": {
                    "description": "Meta is used to associate arbitrary metadata with this task.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "Name": {
                    "description": "Name of the task",
                    "type": "string"
                },
                "Network": {
                    "$ref": "#/definitions/models.NetworkConfig"
                },
                "Publisher": {
                    "$ref": "#/definitions/models.SpecConfig"
                },
                "Resources": {
                    "description": "ResourcesConfig is the resources needed by this task",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.ResourcesConfig"
                        }
                    ]
                },
                "ResultPaths": {
                    "description": "ResultPaths is a list of task volumes to be included in the task's published result",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.ResultPath"
                    }
                },
                "Timeouts": {
                    "$ref": "#/definitions/models.TimeoutConfig"
                }
            }
        },
        "models.TimeoutConfig": {
            "type": "object",
            "properties": {
                "ExecutionTimeout": {
                    "description": "ExecutionTimeout is the maximum amount of time a task is allowed to run in seconds.\nZero means no timeout, such as for a daemon task.",
                    "type": "integer"
                },
                "QueueTimeout": {
                    "description": "QueueTimeout is the maximum amount of time a task is allowed to wait in the orchestrator\nqueue in seconds before being scheduled. Zero means no timeout.",
                    "type": "integer"
                },
                "TotalTimeout": {
                    "description": "TotalTimeout is the maximum amount of time a task is allowed to complete in seconds.\nThis includes the time spent in the queue, the time spent executing and the time spent retrying.\nZero means no timeout.",
                    "type": "integer"
                }
            }
        },
        "selection.Operator": {
            "type": "string",
            "enum": [
                "!",
                "=",
                "==",
                "in",
                "!=",
                "notin",
                "exists",
                "gt",
                "lt"
            ],
            "x-enum-varnames": [
                "DoesNotExist",
                "Equals",
                "DoubleEquals",
                "In",
                "NotEquals",
                "NotIn",
                "Exists",
                "GreaterThan",
                "LessThan"
            ]
        },
        "types.API": {
            "type": "object",
            "properties": {
                "Auth": {
                    "$ref": "#/definitions/types.AuthConfig"
                },
                "Host": {
                    "description": "Host specifies the hostname or IP address on which the API server listens or the client connects.",
                    "type": "string"
                },
                "Port": {
                    "description": "Port specifies the port number on which the API server listens or the client connects.",
                    "type": "integer"
                },
                "TLS": {
                    "$ref": "#/definitions/types.TLS"
                }
            }
        },
        "types.AuthConfig": {
            "type": "object",
            "properties": {
                "AccessPolicyPath": {
                    "description": "AccessPolicyPath is the path to a file or directory that will be loaded as\nthe policy to apply to all inbound API requests. If unspecified, a policy\nthat permits access to all API endpoints to both authenticated and\nunauthenticated users (the default as of v1.2.0) will be used.",
                    "type": "string"
                },
                "Methods": {
                    "description": "Methods maps \"method names\" to authenticator implementations. A method\nname is a human-readable string chosen by the person configuring the\nsystem that is shown to users to help them pick the authentication method\nthey want to use. There can be multiple usages of the same Authenticator\n*type* but with different configs and parameters, each identified with a\nunique method name.\n\nFor example, if an implementation wants to allow users to log in with\nGithub or Bitbucket, they might both use an authenticator implementation\nof type \"oidc\", and each would appear once on this provider with key /\nmethod name \"github\" and \"bitbucket\".\n\nBy default, only a single authentication method that accepts\nauthentication via client keys will be enabled.",
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/types.AuthenticatorConfig"
                    }
                },
                "Oauth2": {
                    "$ref": "#/definitions/types.Oauth2Config"
                },
                "Users": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/types.AuthUser"
                    }
                }
            }
        },
        "types.AuthUser": {
            "type": "object",
            "properties": {
                "APIKey": {
                    "type": "string"
                },
                "Alias": {
                    "type": "string"
                },
                "Capabilities": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/types.Capability"
                    }
                },
                "Password": {
                    "type": "string"
                },
                "Username": {
                    "type": "string"
                }
            }
        },
        "types.AuthenticatorConfig": {
            "type": "object",
            "properties": {
                "PolicyPath": {
                    "type": "string"
                },
                "Type": {
                    "type": "string"
                }
            }
        },
        "types.Bacalhau": {
            "type": "object",
            "properties": {
                "API": {
                    "$ref": "#/definitions/types.API"
                },
                "Compute": {
                    "$ref": "#/definitions/types.Compute"
                },
                "DataDir": {
                    "description": "DataDir specifies a location on disk where the bacalhau node will maintain state.",
                    "type": "string"
                },
                "DisableAnalytics": {
                    "description": "DisableAnalytics, when true, disables sharing anonymous analytics data with the Bacalhau development team",
                    "type": "boolean"
                },
                "Engines": {
                    "$ref": "#/definitions/types.EngineConfig"
                },
                "FeatureFlags": {
                    "$ref": "#/definitions/types.FeatureFlags"
                },
                "InputSources": {
                    "$ref": "#/definitions/types.InputSourcesConfig"
                },
                "JobAdmissionControl": {
                    "$ref": "#/definitions/types.JobAdmissionControl"
                },
                "JobDefaults": {
                    "$ref": "#/definitions/types.JobDefaults"
                },
                "Labels": {
                    "description": "Labels are key-value pairs used to describe and categorize the nodes.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "Logging": {
                    "$ref": "#/definitions/types.Logging"
                },
                "NameProvider": {
                    "description": "NameProvider specifies the method used to generate names for the node. One of: hostname, aws, gcp, uuid, puuid.",
                    "type": "string"
                },
                "Orchestrator": {
                    "$ref": "#/definitions/types.Orchestrator"
                },
                "Publishers": {
                    "$ref": "#/definitions/types.PublishersConfig"
                },
                "ResultDownloaders": {
                    "$ref": "#/definitions/types.ResultDownloaders"
                },
                "StrictVersionMatch": {
                    "description": "StrictVersionMatch indicates whether to enforce strict version matching.",
                    "type": "boolean"
                },
                "UpdateConfig": {
                    "$ref": "#/definitions/types.UpdateConfig"
                },
                "WebUI": {
                    "$ref": "#/definitions/types.WebUI"
                }
            }
        },
        "types.BatchJobDefaultsConfig": {
            "type": "object",
            "properties": {
                "Priority": {
                    "description": "Priority specifies the default priority allocated to a batch or ops job.\nThis value is used when the job hasn't explicitly set its priority requirement.",
                    "type": "integer"
                },
                "Task": {
                    "$ref": "#/definitions/types.BatchTaskDefaultConfig"
                }
            }
        },
        "types.BatchTaskDefaultConfig": {
            "type": "object",
            "properties": {
                "Publisher": {
                    "$ref": "#/definitions/types.DefaultPublisherConfig"
                },
                "Resources": {
                    "$ref": "#/definitions/types.ResourcesConfig"
                },
                "Timeouts": {
                    "$ref": "#/definitions/types.TaskTimeoutConfig"
                }
            }
        },
        "types.Capability": {
            "type": "object",
            "properties": {
                "Actions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "types.Cluster": {
            "type": "object",
            "properties": {
                "Advertise": {
                    "description": "Advertise specifies the address to advertise to other cluster members.",
                    "type": "string"
                },
                "Host": {
                    "description": "Host specifies the hostname or IP address for cluster communication.",
                    "type": "string"
                },
                "Name": {
                    "description": "Name specifies the unique identifier for this orchestrator cluster.",
                    "type": "string"
                },
                "Peers": {
                    "description": "Peers is a list of other cluster members to connect to on startup.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "Port": {
                    "description": "Port specifies the port number for cluster communication.",
                    "type": "integer"
                }
            }
        },
        "types.Compute": {
            "type": "object",
            "properties": {
                "AllocatedCapacity": {
                    "$ref": "#/definitions/types.ResourceScaler"
                },
                "AllowListedLocalPaths": {
                    "description": "AllowListedLocalPaths specifies a list of local file system paths that the compute node is allowed to access.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "Auth": {
                    "description": "Auth specifies the authentication configuration for compute nodes to connect to the orchestrator.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/types.ComputeAuth"
                        }
                    ]
                },
                "Enabled": {
                    "description": "Enabled indicates whether the compute node is active and available for job execution.",
                    "type": "boolean"
                },
                "Env": {
                    "description": "Env specifies environment variable configuration for the compute node",
                    "allOf": [
                        {
                            "$ref": "#/definitions/types.EnvConfig"
                        }
                    ]
                },
                "Heartbeat": {
                    "$ref": "#/definitions/types.Heartbeat"
                },
                "Network": {
                    "description": "Network specifies the networking configuration for this compute node",
                    "allOf": [
                        {
                            "$ref": "#/definitions/types.NetworkConfig"
                        }
                    ]
                },
                "Orchestrators": {
                    "description": "Orchestrators specifies a list of orchestrator endpoints that this compute node connects to.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "TLS": {
                    "description": "TLS specifies the TLS related configuration on the compute node when connecting with the orchestrator.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/types.ComputeTLS"
                        }
                    ]
                }
            }
        },
        "types.ComputeAuth": {
            "type": "object",
            "properties": {
                "Token": {
                    "description": "Token specifies the key for compute nodes to be able to access the orchestrator.",
                    "type": "string"
                }
            }
        },
        "types.ComputeTLS": {
            "type": "object",
            "properties": {
                "CACert": {
                    "description": "CACert specifies the CA file path that the compute node trusts when connecting to orchestrator.",
                    "type": "string"
                },
                "RequireTLS": {
                    "description": "RequireTLS specifies if the compute node enforces encrypted communication with orchestrator.",
                    "type": "boolean"
                }
            }
        },
        "types.DefaultPublisherConfig": {
            "type": "object",
            "properties": {
                "Params": {
                    "description": "Params specifies the publisher configuration data.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "Type": {
                    "description": "Type specifies the publisher type. e.g. \"s3\", \"local\", \"ipfs\", etc.",
                    "type": "string"
                }
            }
        },
        "types.Docker": {
            "type": "object",
            "properties": {
                "ManifestCache": {
                    "description": "ManifestCache specifies the settings for the Docker manifest cache.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/types.DockerManifestCache"
                        }
                    ]
                }
            }
        },
        "types.DockerManifestCache": {
            "type": "object",
            "properties": {
                "Refresh": {
                    "description": "Refresh specifies the refresh interval for cache entries.",
                    "type": "integer"
                },
                "Size": {
                    "description": "Size specifies the size of the Docker manifest cache.",
                    "type": "integer"
                },
                "TTL": {
                    "description": "TTL specifies the time-to-live duration for cache entries.",
                    "type": "integer"
                }
            }
        },
        "types.EngineConfig": {
            "type": "object",
            "properties": {
                "Disabled": {
                    "description": "Disabled specifies a list of engines that are disabled.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "Types": {
                    "$ref": "#/definitions/types.EngineConfigTypes"
                }
            }
        },
        "types.EngineConfigTypes": {
            "type": "object",
            "properties": {
                "Docker": {
                    "$ref": "#/definitions/types.Docker"
                },
                "WASM": {
                    "$ref": "#/definitions/types.WASM"
                }
            }
        },
        "types.EnvConfig": {
            "type": "object",
            "properties": {
                "AllowList": {
                    "description": "AllowList specifies which host environment variables can be forwarded to jobs.\nSupports glob patterns (e.g., \"AWS_*\", \"API_*\")",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "types.EvaluationBroker": {
            "type": "object",
            "properties": {
                "MaxRetryCount": {
                    "description": "MaxRetryCount specifies the maximum number of times an evaluation can be retried before being marked as failed.",
                    "type": "integer"
                },
                "VisibilityTimeout": {
                    "description": "VisibilityTimeout specifies how long an evaluation can be claimed before it's returned to the queue.",
                    "type": "integer"
                }
            }
        },
        "types.FeatureFlags": {
            "type": "object"
        },
        "types.Heartbeat": {
            "type": "object",
            "properties": {
                "InfoUpdateInterval": {
                    "description": "InfoUpdateInterval specifies the time between updates of non-resource information to the orchestrator.",
                    "type": "integer"
                },
                "Interval": {
                    "description": "Interval specifies the time between heartbeat signals sent to the orchestrator.",
                    "type": "integer"
                },
                "ResourceUpdateInterval": {
                    "description": "Deprecated: use Interval instead",
                    "type": "integer"
                }
            }
        },
        "types.IPFSPublisher": {
            "type": "object",
            "properties": {
                "Endpoint": {
                    "description": "Endpoint specifies the multi-address to connect to for IPFS. e.g /ip4/127.0.0.1/tcp/5001",
                    "type": "string"
                }
            }
        },
        "types.IPFSStorage": {
            "type": "object",
            "properties": {
                "Endpoint": {
                    "description": "Endpoint specifies the multi-address to connect to for IPFS. e.g /ip4/127.0.0.1/tcp/5001",
                    "type": "string"
                }
            }
        },
        "types.InputSourcesConfig": {
            "type": "object",
            "properties": {
                "Disabled": {
                    "description": "Disabled specifies a list of storages that are disabled.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "MaxRetryCount": {
                    "description": "ReadTimeout specifies the maximum number of attempts for reading from a storage.",
                    "type": "integer"
                },
                "ReadTimeout": {
                    "description": "ReadTimeout specifies the maximum time allowed for reading from a storage.",
                    "type": "integer"
                },
                "Types": {
                    "$ref": "#/definitions/types.InputSourcesTypes"
                }
            }
        },
        "types.InputSourcesTypes": {
            "type": "object",
            "properties": {
                "IPFS": {
                    "$ref": "#/definitions/types.IPFSStorage"
                }
            }
        },
        "types.IpfsDownloader": {
            "type": "object",
            "properties": {
                "Endpoint": {
                    "description": "Endpoint specifies the multi-address to connect to for IPFS. e.g /ip4/127.0.0.1/tcp/5001",
                    "type": "string"
                }
            }
        },
        "types.JobAdmissionControl": {
            "type": "object",
            "properties": {
                "Locality": {
                    "description": "Locality specifies the locality of the job input data.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.JobSelectionDataLocality"
                        }
                    ]
                },
                "ProbeExec": {
                    "description": "ProbeExec specifies the command to execute for probing job submission.",
                    "type": "string"
                },
                "ProbeHTTP": {
                    "description": "ProbeHTTP specifies the HTTP endpoint for probing job submission.",
                    "type": "string"
                },
                "RejectNetworkedJobs": {
                    "description": "RejectNetworkedJobs indicates whether to reject jobs that require network access.",
                    "type": "boolean"
                },
                "RejectStatelessJobs": {
                    "description": "RejectStatelessJobs indicates whether to reject stateless jobs, i.e. jobs without inputs.",
                    "type": "boolean"
                }
            }
        },
        "types.JobDefaults": {
            "type": "object",
            "properties": {
                "Batch": {
                    "$ref": "#/definitions/types.BatchJobDefaultsConfig"
                },
                "Daemon": {
                    "$ref": "#/definitions/types.LongRunningJobDefaultsConfig"
                },
                "Ops": {
                    "$ref": "#/definitions/types.BatchJobDefaultsConfig"
                },
                "Service": {
                    "$ref": "#/definitions/types.LongRunningJobDefaultsConfig"
                }
            }
        },
        "types.License": {
            "type": "object",
            "properties": {
                "LocalPath": {
                    "description": "LocalPath specifies the local license file path",
                    "type": "string"
                }
            }
        },
        "types.LocalPublisher": {
            "type": "object",
            "properties": {
                "Address": {
                    "description": "Address specifies the endpoint the publisher serves on.",
                    "type": "string"
                },
                "Port": {
                    "description": "Port specifies the port the publisher serves on.",
                    "type": "integer"
                }
            }
        },
        "types.Logging": {
            "type": "object",
            "properties": {
                "Level": {
                    "description": "Level sets the logging level. One of: trace, debug, info, warn, error, fatal, panic.",
                    "type": "string"
                },
                "LogDebugInfoInterval": {
                    "description": "LogDebugInfoInterval specifies the interval for logging debug information.",
                    "type": "integer"
                },
                "Mode": {
                    "description": "Mode specifies the logging mode. One of: default, json.",
                    "type": "string"
                }
            }
        },
        "types.LongRunningJobDefaultsConfig": {
            "type": "object",
            "properties": {
                "Priority": {
                    "description": "Priority specifies the default priority allocated to a service or daemon job.\nThis value is used when the job hasn't explicitly set its priority requirement.",
                    "type": "integer"
                },
                "Task": {
                    "$ref": "#/definitions/types.LongRunningTaskDefaultConfig"
                }
            }
        },
        "types.LongRunningTaskDefaultConfig": {
            "type": "object",
            "properties": {
                "Resources": {
                    "$ref": "#/definitions/types.ResourcesConfig"
                }
            }
        },
        "types.NetworkConfig": {
            "type": "object",
            "properties": {
                "AdvertisedAddress": {
                    "description": "AdvertisedAddress is the address that this compute node advertises to other nodes.\nIf empty, a default address will be auto-discovered.",
                    "type": "string"
                },
                "PortRangeEnd": {
                    "description": "PortRangeEnd is the last port in the range (inclusive) that can be allocated to jobs",
                    "type": "integer"
                },
                "PortRangeStart": {
                    "description": "PortRangeStart is the first port in the range (inclusive) that can be allocated to jobs",
                    "type": "integer"
                }
            }
        },
        "types.NodeManager": {
            "type": "object",
            "properties": {
                "DisconnectTimeout": {
                    "description": "DisconnectTimeout specifies how long to wait before considering a node disconnected.",
                    "type": "integer"
                },
                "ManualApproval": {
                    "description": "ManualApproval, if true, requires manual approval for new compute nodes joining the cluster.",
                    "type": "boolean"
                }
            }
        },
        "types.Oauth2Config": {
            "type": "object",
            "properties": {
                "Audience": {
                    "type": "string"
                },
                "DeviceAuthorizationEndpoint": {
                    "type": "string"
                },
                "DeviceClientID": {
                    "type": "string"
                },
                "Issuer": {
                    "type": "string"
                },
                "JWKSUri": {
                    "type": "string"
                },
                "PollingInterval": {
                    "type": "integer"
                },
                "ProviderID": {
                    "type": "string"
                },
                "ProviderName": {
                    "type": "string"
                },
                "Scopes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "TokenEndpoint": {
                    "type": "string"
                }
            }
        },
        "types.Orchestrator": {
            "type": "object",
            "properties": {
                "Advertise": {
                    "description": "Advertise specifies URL to advertise to other servers.",
                    "type": "string"
                },
                "Auth": {
                    "description": "Auth specifies the authentication configuration for compute nodes to connect to the orchestrator.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/types.OrchestratorAuth"
                        }
                    ]
                },
                "Cluster": {
                    "$ref": "#/definitions/types.Cluster"
                },
                "Enabled": {
                    "description": "Enabled indicates whether the orchestrator node is active and available for job submission.",
                    "type": "boolean"
                },
                "EvaluationBroker": {
                    "$ref": "#/definitions/types.EvaluationBroker"
                },
                "Host": {
                    "description": "Host specifies the hostname or IP address on which the Orchestrator server listens for compute node connections.",
                    "type": "string"
                },
                "License": {
                    "description": "License specifies license configuration for orchestrator node",
                    "allOf": [
                        {
                            "$ref": "#/definitions/types.License"
                        }
                    ]
                },
                "NodeManager": {
                    "$ref": "#/definitions/types.NodeManager"
                },
                "Port": {
                    "description": "Host specifies the port number on which the Orchestrator server listens for compute node connections.",
                    "type": "integer"
                },
                "Scheduler": {
                    "$ref": "#/definitions/types.Scheduler"
                },
                "SupportReverseProxy": {
                    "description": "SupportReverseProxy configures the orchestrator node to run behind a reverse proxy",
                    "type": "boolean"
                },
                "TLS": {
                    "description": "TLS specifies the TLS related configuration on the orchestrator for when compute nodes need to connect.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/types.OrchestratorTLS"
                        }
                    ]
                }
            }
        },
        "types.OrchestratorAuth": {
            "type": "object",
            "properties": {
                "Token": {
                    "description": "Token specifies the key for compute nodes to be able to access the orchestrator",
                    "type": "string"
                }
            }
        },
        "types.OrchestratorTLS": {
            "type": "object",
            "properties": {
                "CACert": {
                    "description": "CACert specifies the CA file path that the orchestrator node trusts when connecting to NATS server.",
                    "type": "string"
                },
                "ServerCert": {
                    "description": "ServerCert specifies the certificate file path given to NATS server to serve TLS connections.",
                    "type": "string"
                },
                "ServerKey": {
                    "description": "ServerKey specifies the private key file path given to NATS server to serve TLS connections.",
                    "type": "string"
                },
                "ServerTimeout": {
                    "description": "ServerTimeout specifies the TLS timeout, in seconds, set on the NATS server.",
                    "type": "integer"
                }
            }
        },
        "types.PublisherTypes": {
            "type": "object",
            "properties": {
                "IPFS": {
                    "$ref": "#/definitions/types.IPFSPublisher"
                },
                "Local": {
                    "$ref": "#/definitions/types.LocalPublisher"
                },
                "S3": {
                    "$ref": "#/definitions/types.S3Publisher"
                },
                "S3Managed": {
                    "$ref": "#/definitions/types.S3ManagedPublisher"
                }
            }
        },
        "types.PublishersConfig": {
            "type": "object",
            "properties": {
                "Disabled": {
                    "description": "Disabled specifies a list of publishers that are disabled.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "Types": {
                    "$ref": "#/definitions/types.PublisherTypes"
                }
            }
        },
        "types.ResourceScaler": {
            "type": "object",
            "properties": {
                "CPU": {
                    "description": "CPU specifies the amount of CPU a compute node allocates for running jobs.\nIt can be expressed as a percentage (e.g., \"85%\") or a Kubernetes resource string (e.g., \"100m\").",
                    "type": "string"
                },
                "Disk": {
                    "description": "Disk specifies the amount of Disk space a compute node allocates for running jobs.\nIt can be expressed as a percentage (e.g., \"85%\") or a Kubernetes resource string (e.g., \"10Gi\").",
                    "type": "string"
                },
                "GPU": {
                    "description": "GPU specifies the amount of GPU a compute node allocates for running jobs.\nIt can be expressed as a percentage (e.g., \"85%\") or a Kubernetes resource string (e.g., \"1\").\nNote: When using percentages, the result is always rounded up to the nearest whole GPU.",
                    "type": "string"
                },
                "Memory": {
                    "description": "Memory specifies the amount of Memory a compute node allocates for running jobs.\nIt can be expressed as a percentage (e.g., \"85%\") or a Kubernetes resource string (e.g., \"1Gi\").",
                    "type": "string"
                }
            }
        },
        "types.ResourcesConfig": {
            "type": "object",
            "properties": {
                "CPU": {
                    "description": "CPU specifies the default amount of CPU allocated to a task.\nIt uses Kubernetes resource string format (e.g., \"100m\" for 0.1 CPU cores).\nThis value is used when the task hasn't explicitly set its CPU requirement.",
                    "type": "string"
                },
                "Disk": {
                    "description": "Disk specifies the default amount of disk space allocated to a task.\nIt uses Kubernetes resource string format (e.g., \"1Gi\" for 1 gibibyte).\nThis value is used when the task hasn't explicitly set its disk space requirement.",
                    "type": "string"
                },
                "GPU": {
                    "description": "GPU specifies the default number of GPUs allocated to a task.\nIt uses Kubernetes resource string format (e.g., \"1\" for 1 GPU).\nThis value is used when the task hasn't explicitly set its GPU requirement.",
                    "type": "string"
                },
                "Memory": {
                    "description": "Memory specifies the default amount of memory allocated to a task.\nIt uses Kubernetes resource string format (e.g., \"256Mi\" for 256 mebibytes).\nThis value is used when the task hasn't explicitly set its memory requirement.",
                    "type": "string"
                }
            }
        },
        "types.ResultDownloaders": {
            "type": "object",
            "properties": {
                "Disabled": {
                    "description": "Disabled is a list of downloaders that are disabled.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "Timeout": {
                    "description": "Timeout specifies the maximum time allowed for a download operation.",
                    "type": "integer"
                },
                "Types": {
                    "$ref": "#/definitions/types.ResultDownloadersTypes"
                }
            }
        },
        "types.ResultDownloadersTypes": {
            "type": "object",
            "properties": {
                "IPFS": {
                    "$ref": "#/definitions/types.IpfsDownloader"
                }
            }
        },
        "types.S3ManagedPublisher": {
            "type": "object",
            "properties": {
                "Bucket": {
                    "description": "Bucket specifies the S3 bucket name for managed publisher",
                    "type": "string"
                },
                "Endpoint": {
                    "description": "Endpoint specifies an optional custom S3 endpoint",
                    "type": "string"
                },
                "Key": {
                    "description": "Key specifies an optional prefix for objects stored in the bucket",
                    "type": "string"
                },
                "PreSignedURLExpiration": {
                    "description": "PreSignedURLExpiration specifies the duration before a pre-signed URL expires.",
                    "type": "integer"
                },
                "Region": {
                    "description": "Region specifies the region the S3 bucket is in",
                    "type": "string"
                }
            }
        },
        "types.S3Publisher": {
            "type": "object",
            "properties": {
                "PreSignedURLDisabled": {
                    "description": "PreSignedURLDisabled specifies whether pre-signed URLs are enabled for the S3 provider.",
                    "type": "boolean"
                },
                "PreSignedURLExpiration": {
                    "description": "PreSignedURLExpiration specifies the duration before a pre-signed URL expires.",
                    "type": "integer"
                }
            }
        },
        "types.Scheduler": {
            "type": "object",
            "properties": {
                "HousekeepingInterval": {
                    "description": "HousekeepingInterval specifies how often to run housekeeping tasks.",
                    "type": "integer"
                },
                "HousekeepingTimeout": {
                    "description": "HousekeepingTimeout specifies the maximum time allowed for a single housekeeping run.",
                    "type": "integer"
                },
                "QueueBackoff": {
                    "description": "QueueBackoff specifies the time to wait before retrying a failed job.",
                    "type": "integer"
                },
                "WorkerCount": {
                    "description": "WorkerCount specifies the number of concurrent workers for job scheduling.",
                    "type": "integer"
                }
            }
        },
        "types.TLS": {
            "type": "object",
            "properties": {
                "AutoCert": {
                    "description": "AutoCert specifies the domain for automatic certificate generation.",
                    "type": "string"
                },
                "AutoCertCachePath": {
                    "description": "AutoCertCachePath specifies the directory to cache auto-generated certificates.",
                    "type": "string"
                },
                "CAFile": {
                    "description": "CAFile specifies the path to the Certificate Authority file.",
                    "type": "string"
                },
                "CertFile": {
                    "description": "CertFile specifies the path to the TLS certificate file.",
                    "type": "string"
                },
                "Insecure": {
                    "description": "Insecure allows insecure TLS connections (e.g., self-signed certificates).",
                    "type": "boolean"
                },
                "KeyFile": {
                    "description": "KeyFile specifies the path to the TLS private key file.",
                    "type": "string"
                },
                "SelfSigned": {
                    "description": "SelfSigned indicates whether to use a self-signed certificate.",
                    "type": "boolean"
                },
                "UseTLS": {
                    "description": "UseTLS indicates whether to use TLS for client connections.",
                    "type": "boolean"
                }
            }
        },
        "types.TaskTimeoutConfig": {
            "type": "object",
            "properties": {
                "ExecutionTimeout": {
                    "description": "ExecutionTimeout is the maximum time allowed for task execution",
                    "type": "integer"
                },
                "TotalTimeout": {
                    "description": "TotalTimeout is the maximum total time allowed for a task",
                    "type": "integer"
                }
            }
        },
        "types.UpdateConfig": {
            "type": "object",
            "properties": {
                "Interval": {
                    "description": "Interval specifies the time between update checks, when set to 0 update checks are not performed.",
                    "type": "integer"
                }
            }
        },
        "types.WASM": {
            "type": "object"
        },
        "types.WebUI": {
            "type": "object",
            "properties": {
                "Backend": {
                    "description": "Backend specifies the address and port of the backend API server.\nIf empty, the Web UI will use the same address and port as the API server.",
                    "type": "string"
                },
                "Enabled": {
                    "description": "Enabled indicates whether the Web UI is enabled.",
                    "type": "boolean"
                },
                "Listen": {
                    "description": "Listen specifies the address and port on which the Web UI listens.",
                    "type": "string"
                }
            }
        }
    }
}`

// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
	Version:          "",
	Host:             "localhost:1234",
	BasePath:         "/",
	Schemes:          []string{"http"},
	Title:            "Bacalhau API",
	Description:      "This page is the reference of the Bacalhau REST API. Project docs are available at https://docs.bacalhau.org/. Find more information about Bacalhau at https://github.com/bacalhau-project/bacalhau.",
	InfoInstanceName: "swagger",
	SwaggerTemplate:  docTemplate,
	LeftDelim:        "{{",
	RightDelim:       "}}",
}

func init() {
	swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}
