{
  "components": {
    "schemas": {
      "AWSAccount": {
        "additionalProperties": false,
        "description": "AWSAccount is an AWS binding through a read-only IAM role.",
        "properties": {
          "accountId": {
            "description": "AccountID is the 12-digit AWS account id.",
            "type": "string"
          },
          "regions": {
            "description": "Regions limits observation; empty means every enabled region.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "roleArn": {
            "description": "RoleARN is the read-only role the CloudFormation stack created; onboarding fills it.",
            "type": "string"
          }
        },
        "required": [
          "accountId"
        ],
        "type": "object"
      },
      "Agent": {
        "additionalProperties": false,
        "description": "Agent is a durable agent definition: a system prompt, the Claude access it runs on and its cost cap. Each run executes the agent loop in its own Sandbox, and a change to the spec applies to the runs created after it.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/AgentSpec"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Agent",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": [
            "Running",
            "Stopped"
          ],
          "Tools": null
        }
      },
      "AgentGroup": {
        "additionalProperties": false,
        "description": "AgentGroup runs many AgentRuns of one Agent in parallel: a concurrency limit, a dependency graph, a shared cost cap and one cancel over its member runs. Members are AgentRuns created with spec.group, one per task, singly or as an AgentRunList of up to 100.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/AgentGroupSpec"
          },
          "status": {
            "$ref": "#/components/schemas/AgentGroupStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "AgentGroup",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": [
            "Running",
            "Cancelled"
          ],
          "Tools": null
        }
      },
      "AgentGroupBlocked": {
        "additionalProperties": false,
        "description": "AgentGroupBlocked is one entry of status.blockedReasons.",
        "properties": {
          "count": {
            "description": "Count is how many queued member runs wait for it.",
            "format": "int32",
            "type": "integer"
          },
          "reason": {
            "description": "Reason is DependencyWait, MaxActiveReached or MaxCostReached.",
            "type": "string"
          }
        },
        "required": [
          "reason",
          "count"
        ],
        "type": "object"
      },
      "AgentGroupCounts": {
        "additionalProperties": false,
        "description": "AgentGroupCounts is status.counts.",
        "properties": {
          "active": {
            "description": "Active runs are running.",
            "format": "int32",
            "type": "integer"
          },
          "cancelled": {
            "description": "The runs canceled by request or because a dependency did not succeed.",
            "format": "int32",
            "type": "integer"
          },
          "failed": {
            "description": "Failed runs failed.",
            "format": "int32",
            "type": "integer"
          },
          "queued": {
            "description": "Queued runs have not started: they wait for their dependencies, a free slot or room under the cost cap.",
            "format": "int32",
            "type": "integer"
          },
          "succeeded": {
            "description": "Succeeded runs finished their work.",
            "format": "int32",
            "type": "integer"
          },
          "total": {
            "description": "Total is the number of member runs.",
            "format": "int32",
            "type": "integer"
          },
          "waiting": {
            "description": "Waiting runs wait for a message or for funds; their Sandbox may remain allocated until cleanup.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "total",
          "queued",
          "active",
          "waiting",
          "succeeded",
          "failed",
          "cancelled"
        ],
        "type": "object"
      },
      "AgentGroupEvaluation": {
        "additionalProperties": false,
        "description": "AgentGroupEvaluation selects a reproducible Environment task manifest. Compute for the agent and grader Sandboxes is billed separately from maxCostUSD and remains subject to project and organization budgets.",
        "properties": {
          "environment": {
            "description": "Environment is a project or nodus/name@version reference, resolved to an immutable image digest.",
            "type": "string"
          },
          "repetitions": {
            "description": "Repetitions runs each task this many times; tasks times repetitions must be at most 100.",
            "format": "int32",
            "type": "integer"
          },
          "seed": {
            "description": "Seed selects the deterministic task manifest.",
            "format": "int64",
            "type": "integer"
          },
          "split": {
            "description": "Split is train or test; test by default.",
            "type": "string"
          },
          "tasks": {
            "description": "Tasks takes the first N tasks in manifest order, 1 to 100.",
            "format": "int32",
            "type": "integer"
          },
          "timeout": {
            "description": "Timeout bounds the batch from creation, including manifest preparation and queued time; 30m by default, 1m to 24h.",
            "type": "string"
          }
        },
        "required": [
          "environment",
          "tasks"
        ],
        "type": "object"
      },
      "AgentGroupEvaluationStatus": {
        "additionalProperties": false,
        "description": "AgentGroupEvaluationStatus contains only aggregate results and pinned provenance. Unscored failures are excluded from passRate and meanReward; a zero denominator leaves both absent.",
        "properties": {
          "agentRevision": {
            "description": "AgentRevision is the revision pinned by every member.",
            "format": "int64",
            "type": "integer"
          },
          "agentUID": {
            "description": "AgentUID and AgentRevision identify the definition pinned by every member of this batch.",
            "type": "string"
          },
          "cancelled": {
            "description": "Canceled cases are not scored.",
            "format": "int32",
            "type": "integer"
          },
          "environmentDigest": {
            "description": "EnvironmentDigest is the resolved grading image, checked before every grading operation.",
            "type": "string"
          },
          "failed": {
            "description": "Failed counts failed member executions, which are not scored.",
            "format": "int32",
            "type": "integer"
          },
          "incorrect": {
            "description": "Incorrect counts scored wrong answers.",
            "format": "int32",
            "type": "integer"
          },
          "infrastructureFailure": {
            "description": "InfrastructureFailure counts unscored grader or environment failures.",
            "format": "int32",
            "type": "integer"
          },
          "initialized": {
            "description": "Initialized says the fixed member batch has been created atomically.",
            "type": "boolean"
          },
          "invalidOutput": {
            "description": "InvalidOutput counts scored answers that failed the output contract.",
            "format": "int32",
            "type": "integer"
          },
          "meanReward": {
            "description": "MeanReward averages reward over scored verdicts; absent if none.",
            "format": "double",
            "type": "number"
          },
          "missingAnswer": {
            "description": "MissingAnswer counts completed runs without a readable answer and removed members.",
            "format": "int32",
            "type": "integer"
          },
          "passRate": {
            "description": "PassRate is Correct divided by the number of scored verdicts; absent if none.",
            "format": "double",
            "type": "number"
          },
          "passed": {
            "description": "Passed counts Correct verdicts.",
            "format": "int32",
            "type": "integer"
          },
          "pending": {
            "description": "Pending counts cases not yet terminal or awaiting a verdict.",
            "format": "int32",
            "type": "integer"
          },
          "total": {
            "description": "Total is the requested number of cases, including repetitions.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "initialized",
          "total",
          "pending",
          "passed",
          "incorrect",
          "invalidOutput",
          "failed",
          "cancelled",
          "missingAnswer",
          "infrastructureFailure"
        ],
        "type": "object"
      },
      "AgentGroupLimits": {
        "additionalProperties": false,
        "description": "AgentGroupLimits is spec.limits.",
        "properties": {
          "maxActive": {
            "description": "MaxActive is how many member runs may run at once, 1 to 1000; 10 when zero.",
            "format": "int32",
            "type": "integer"
          },
          "maxPending": {
            "description": "MaxPending is how many unfinished member runs the group admits, 1 to 10000; 10000 when zero.",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "AgentGroupList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/AgentGroup"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "AgentGroupSpec": {
        "additionalProperties": false,
        "description": "AgentGroupSpec describes an AgentGroup.",
        "properties": {
          "agent": {
            "description": "Agent names the Agent every member run runs: an Agent in the project, or a template in project nodus.",
            "type": "string"
          },
          "evaluation": {
            "$ref": "#/components/schemas/AgentGroupEvaluation"
          },
          "limits": {
            "$ref": "#/components/schemas/AgentGroupLimits"
          },
          "maxCostUSD": {
            "description": "MaxCostUSD is one cap on the Claude usage (model and routing calls) of every member run together; none when empty. A member run starts only while what the group has spent, plus the per-run cost caps of its started unfinished runs, plus this run's cap fits under it, so the members together never spend more on Claude. The Sandbox each run works in is billed on its own and is not counted. It can only be raised.",
            "type": "string"
          },
          "sealed": {
            "description": "Sealed closes the group to new runs. It goes from false to true only; a group finishes once it is sealed and every member run is terminal.",
            "type": "boolean"
          },
          "state": {
            "description": "State is Running (the default) or the cancel state, which cancels every unfinished member run.",
            "type": "string"
          }
        },
        "required": [
          "agent"
        ],
        "type": "object"
      },
      "AgentGroupStatus": {
        "additionalProperties": false,
        "description": "AgentGroupStatus is what Nodus observed about an AgentGroup.",
        "properties": {
          "blockedReasons": {
            "description": "BlockedReasons says why queued member runs have not started, with how many wait for each reason.",
            "items": {
              "$ref": "#/components/schemas/AgentGroupBlocked"
            },
            "nullable": true,
            "type": "array"
          },
          "cleanup": {
            "description": "Cleanup is Pending while a canceled or finished group still has unfinished member runs, then Complete. A terminal member run holds no Sandbox.",
            "type": "string"
          },
          "completionTime": {
            "description": "CompletionTime is when the group reached a terminal phase.",
            "type": "string"
          },
          "cost": {
            "$ref": "#/components/schemas/Cost"
          },
          "counts": {
            "$ref": "#/components/schemas/AgentGroupCounts"
          },
          "evaluation": {
            "$ref": "#/components/schemas/AgentGroupEvaluationStatus"
          },
          "message": {
            "description": "Message explains the phase in a sentence.",
            "type": "string"
          },
          "observedGeneration": {
            "description": "ObservedGeneration is the spec generation this status reflects.",
            "format": "int64",
            "type": "integer"
          },
          "phase": {
            "description": "Phase is Running until the group is sealed and every member run is terminal, then Succeeded, or Failed when a member run failed; the cancel state moves it through the canceling phase to the canceled one.",
            "type": "string"
          },
          "reason": {
            "description": "Reason is the machine-readable reason for the phase, such as RunsFailed.",
            "type": "string"
          },
          "startTime": {
            "description": "StartTime is when the first member run started.",
            "type": "string"
          }
        },
        "required": [
          "counts"
        ],
        "type": "object"
      },
      "AgentList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Agent"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "AgentModel": {
        "additionalProperties": false,
        "description": "AgentModel is spec.model.",
        "properties": {
          "access": {
            "description": "Access is Nodus (the default) or BYOK.",
            "type": "string"
          },
          "apiKeySecret": {
            "description": "APIKeySecret names the project Secret that holds the Anthropic key. Access BYOK only.",
            "type": "string"
          },
          "families": {
            "description": "Families limits the Claude families the router may pick (haiku, sonnet, opus, fable); every family when empty. Access Nodus only.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "name": {
            "description": "Name is the Anthropic model id of every turn. Access BYOK only; a current Sonnet when empty.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AgentRun": {
        "additionalProperties": false,
        "description": "AgentRun is one durable execution of an Agent revision: a conversation the agent works through turn by turn in its own Sandbox. A run survives restarts of Nodus: it replays its journal to where it stopped and never repeats a recorded model call or tool call.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/AgentRunSpec"
          },
          "status": {
            "$ref": "#/components/schemas/AgentRunStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "AgentRun",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": [
            "Running",
            "Cancelled"
          ],
          "Tools": null
        }
      },
      "AgentRunAnswer": {
        "additionalProperties": false,
        "description": "AgentRunAnswer is the final answer of a run.",
        "properties": {
          "preview": {
            "description": "Preview is the first 4 KiB of the answer.",
            "type": "string"
          },
          "sha256": {
            "description": "SHA256 is the hex digest of the whole answer.",
            "type": "string"
          },
          "size": {
            "description": "Size is the answer's length in bytes.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "preview",
          "size",
          "sha256"
        ],
        "type": "object"
      },
      "AgentRunList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/AgentRun"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "AgentRunSpec": {
        "additionalProperties": false,
        "description": "AgentRunSpec describes an AgentRun. Everything is immutable after create except state.",
        "properties": {
          "agent": {
            "description": "Agent names an Agent in the project, or a template in project nodus.",
            "type": "string"
          },
          "deadline": {
            "description": "Deadline fails the run with DeadlineExceeded when it passes.",
            "type": "string"
          },
          "dependsOn": {
            "description": "DependsOn lists the task keys of the group the run starts after, each already in the group (or earlier in the same AgentRunList). The run is canceled when one of them fails or is canceled.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "group": {
            "description": "Group names the AgentGroup the run is a task of; the run then runs the group's Agent, starts when the group releases it and is named \u003cgroup\u003e-\u003ctaskKey\u003e.",
            "type": "string"
          },
          "input": {
            "description": "Input is the first prompt: a JSON string, or any JSON value, sent to the model as its text. Up to 256 KiB."
          },
          "keepAlive": {
            "description": "KeepAlive keeps the run Waiting for messages after each turn instead of succeeding.",
            "type": "boolean"
          },
          "state": {
            "description": "State is the desired state: Running (the default) or the cancel state.",
            "type": "string"
          },
          "taskKey": {
            "description": "TaskKey is the run's key in its group, a DNS label unique in the group; required with group.",
            "type": "string"
          }
        },
        "required": [
          "agent"
        ],
        "type": "object"
      },
      "AgentRunStatus": {
        "additionalProperties": false,
        "description": "AgentRunStatus is what Nodus observed about an AgentRun.",
        "properties": {
          "answer": {
            "$ref": "#/components/schemas/AgentRunAnswer"
          },
          "completionTime": {
            "description": "CompletionTime is when the run reached a terminal phase.",
            "type": "string"
          },
          "cost": {
            "$ref": "#/components/schemas/Cost"
          },
          "dispatches": {
            "description": "Dispatches counts how many times a dispatcher picked the run up; more than one means it recovered.",
            "format": "int32",
            "type": "integer"
          },
          "message": {
            "description": "Message explains the phase in a sentence.",
            "type": "string"
          },
          "observedGeneration": {
            "description": "ObservedGeneration is the spec generation this status reflects.",
            "format": "int64",
            "type": "integer"
          },
          "phase": {
            "description": "Phase is the lifecycle phase: Queued, Running, Waiting for a message or funds, then a terminal phase.",
            "type": "string"
          },
          "reason": {
            "description": "Reason is the machine-readable reason for the phase, such as WaitingForMessage or MaxCostReached.",
            "type": "string"
          },
          "revision": {
            "description": "Revision is the Agent revision the run pinned at admission.",
            "format": "int64",
            "type": "integer"
          },
          "sandbox": {
            "description": "Sandbox names the run's Sandbox once it exists; it is deleted when the run ends.",
            "type": "string"
          },
          "startTime": {
            "description": "StartTime is when the first dispatch started.",
            "type": "string"
          },
          "steps": {
            "$ref": "#/components/schemas/AgentRunSteps"
          },
          "turns": {
            "description": "Turns lists the run's turns with the Claude model that served each.",
            "items": {
              "$ref": "#/components/schemas/AgentTurn"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "AgentRunSteps": {
        "additionalProperties": false,
        "description": "AgentRunSteps counts journal steps.",
        "properties": {
          "total": {
            "description": "Total is the number of steps recorded.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "total"
        ],
        "type": "object"
      },
      "AgentSpec": {
        "additionalProperties": false,
        "description": "AgentSpec describes an Agent.",
        "properties": {
          "image": {
            "description": "Image is the Sandbox image each run's tools execute in; nodus/agent-tools when empty.",
            "type": "string"
          },
          "maxTokens": {
            "description": "MaxTokens bounds the output of each model call; 8192 when zero.",
            "format": "int64",
            "type": "integer"
          },
          "maxToolCalls": {
            "description": "MaxToolCalls bounds the tool calls of one turn; 50 when zero.",
            "format": "int32",
            "type": "integer"
          },
          "model": {
            "$ref": "#/components/schemas/AgentModel"
          },
          "perRunMaxCostUSD": {
            "description": "PerRunMaxCostUSD is the cost cap of each run on Nodus's Claude, 0.01 to 1000; \"1.00\" when empty. A run is created with the cap its Agent has at that moment and keeps it. Before each model call the run checks that the call at its largest, the whole request as input and spec.maxTokens of output, fits under the cap; when it does not, the run waits (MaxCostReached) and makes no more calls. A run on the customer's own key is not charged and has no cap to reach.",
            "type": "string"
          },
          "state": {
            "description": "State is Running (the default) or Stopped, which refuses new runs and leaves the queued ones alone.",
            "type": "string"
          },
          "system": {
            "description": "System is the system prompt of every turn, up to 64 KiB.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AgentTurn": {
        "additionalProperties": false,
        "description": "AgentTurn is one prompt and the model's work on it. The model is chosen once per turn and serves all of it.",
        "properties": {
          "costUSD": {
            "description": "CostUSD is the turn's charge.",
            "type": "string"
          },
          "fallbackReason": {
            "description": "FallbackReason says why the router fell back to Sonnet.",
            "type": "string"
          },
          "family": {
            "description": "Family is the Claude family the router chose (Nodus access).",
            "type": "string"
          },
          "inputTokens": {
            "description": "InputTokens is the turn's input token usage, cache reads and writes included.",
            "format": "int64",
            "type": "integer"
          },
          "model": {
            "description": "Model is the Anthropic model that served every call of the turn.",
            "type": "string"
          },
          "modelCalls": {
            "description": "ModelCalls is the number of model calls the turn made.",
            "format": "int32",
            "type": "integer"
          },
          "outputTokens": {
            "description": "OutputTokens is the turn's output token usage.",
            "format": "int64",
            "type": "integer"
          },
          "prompt": {
            "description": "Prompt is \"input\" for the run's input, or the key of the message that brought the prompt.",
            "type": "string"
          },
          "routedBy": {
            "description": "RoutedBy is jev, fallback (with fallbackReason) or fixed (BYOK).",
            "type": "string"
          },
          "toolCalls": {
            "description": "ToolCalls is the number of commands the turn ran in the Sandbox.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "prompt",
          "model",
          "routedBy",
          "modelCalls",
          "toolCalls",
          "inputTokens",
          "outputTokens"
        ],
        "type": "object"
      },
      "App": {
        "additionalProperties": false,
        "description": "App is the group of Functions and Agents defined in one Python file. `nodus deploy` creates or updates a persistent App; `nodus run` creates an ephemeral one that is deleted when the entrypoint exits. Members are owned by the App, labeled nodus.dev/app, and named \u003capp\u003e-\u003cmember\u003e.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/AppSpec"
          },
          "status": {
            "$ref": "#/components/schemas/AppStatus"
          }
        },
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "App",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "AppList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/App"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "AppMembers": {
        "additionalProperties": false,
        "description": "AppMembers is status.members.",
        "properties": {
          "agents": {
            "description": "Agents counts the App's Agents.",
            "format": "int32",
            "type": "integer"
          },
          "functions": {
            "description": "Functions counts the App's Functions.",
            "format": "int32",
            "type": "integer"
          },
          "ready": {
            "description": "Ready counts the members that accept work.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "functions",
          "agents",
          "ready"
        ],
        "type": "object"
      },
      "AppSource": {
        "additionalProperties": false,
        "description": "AppSource is the code of an App.",
        "properties": {
          "blob": {
            "description": "Blob is the content-addressed code archive.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AppSpec": {
        "additionalProperties": false,
        "description": "AppSpec describes an App. Ephemeral is immutable; the rest changes on each deploy.",
        "properties": {
          "description": {
            "description": "Description is a note of at most 1 KiB.",
            "type": "string"
          },
          "ephemeral": {
            "description": "Ephemeral makes the App live only as long as its client renews it.",
            "type": "boolean"
          },
          "renewTime": {
            "description": "RenewTime is when an ephemeral App was last renewed. The client renews it every 30 s, and the App is deleted when it is older than 2 minutes.",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/AppSource"
          }
        },
        "type": "object"
      },
      "AppStatus": {
        "additionalProperties": false,
        "description": "AppStatus is what Nodus observed about an App.",
        "properties": {
          "conditions": {
            "description": "Conditions are the App's conditions.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "deployTime": {
            "description": "DeployTime is when the App was last deployed.",
            "type": "string"
          },
          "members": {
            "$ref": "#/components/schemas/AppMembers"
          },
          "message": {
            "description": "Message explains a Failed phase, naming the member.",
            "type": "string"
          },
          "observedGeneration": {
            "description": "ObservedGeneration is the spec generation this status reflects.",
            "format": "int64",
            "type": "integer"
          },
          "phase": {
            "description": "Phase is Pending while members are not ready, Ready, or Failed when a member failed.",
            "type": "string"
          },
          "version": {
            "description": "Version increments on each deploy.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Attempt": {
        "additionalProperties": false,
        "description": "Attempt is one incarnation of a container spec on a machine: a Job index, a Sandbox incarnation, a Workspace session, a Function or Agent worker, an image build or a volume import. Every compute kind runs as Attempts, and a replacement after lost capacity is a new Attempt at the next epoch of the same slot. Attempts are read-only and never name a provider. Each carries the owner label (for example nodus.dev/job=\u003cname\u003e), and gang members also carry nodus.dev/rank.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/AttemptSpec"
          },
          "status": {
            "$ref": "#/components/schemas/AttemptStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Attempt",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "AttemptActual": {
        "additionalProperties": false,
        "description": "AttemptActual is status.actual: what has been charged for the Attempt.",
        "properties": {
          "costUSD": {
            "description": "CostUSD is the captured cost.",
            "type": "string"
          },
          "hours": {
            "description": "Hours is the billed time in decimal hours.",
            "type": "string"
          },
          "segments": {
            "$ref": "#/components/schemas/CostSegments"
          }
        },
        "type": "object"
      },
      "AttemptCheckpoints": {
        "additionalProperties": false,
        "description": "AttemptCheckpoints is status.checkpoints.",
        "properties": {
          "count": {
            "description": "Count is how many checkpoints were committed during the Attempt.",
            "format": "int32",
            "type": "integer"
          },
          "lastSeq": {
            "description": "LastSeq is the sequence number of the last one.",
            "format": "int64",
            "type": "integer"
          },
          "restoreBytes": {
            "description": "RestoreBytes is how much the Attempt restored at its start.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "AttemptCounts": {
        "additionalProperties": false,
        "description": "AttemptCounts counts attempts of one slot.",
        "properties": {
          "current": {
            "description": "Current is the current attempt's number, from 1.",
            "format": "int32",
            "type": "integer"
          },
          "max": {
            "description": "Max is recovery.maxAttempts.",
            "format": "int32",
            "type": "integer"
          },
          "total": {
            "description": "Total is how many attempts have run.",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "AttemptCursor": {
        "additionalProperties": false,
        "description": "AttemptCursor is a Restartable Job's progress cursor (NODUS_CURSOR_COMPLETED and NODUS_CURSOR_TOTAL).",
        "properties": {
          "completed": {
            "description": "Completed is how many units were done.",
            "format": "int64",
            "type": "integer"
          },
          "total": {
            "description": "Total is how many units there are.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "completed",
          "total"
        ],
        "type": "object"
      },
      "AttemptGang": {
        "additionalProperties": false,
        "description": "AttemptGang places a gang member in its gang.",
        "properties": {
          "epoch": {
            "description": "Epoch is the gang epoch this member belongs to; a gang restart starts the next one.",
            "format": "int64",
            "type": "integer"
          },
          "id": {
            "description": "ID is the gang's id, shared by every rank of the Job.",
            "type": "string"
          },
          "rank": {
            "description": "Rank is this member's rank; rank 0 hosts the rendezvous.",
            "format": "int32",
            "type": "integer"
          },
          "size": {
            "description": "Size is the number of ranks.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "rank",
          "size",
          "epoch"
        ],
        "type": "object"
      },
      "AttemptInterruption": {
        "additionalProperties": false,
        "description": "AttemptInterruption says what ended an Attempt early.",
        "properties": {
          "lostSeconds": {
            "description": "LostSeconds is the work lost since the last committed checkpoint.",
            "format": "int64",
            "type": "integer"
          },
          "recoverySeconds": {
            "description": "RecoverySeconds is the time until the next Attempt's program started.",
            "format": "int64",
            "type": "integer"
          },
          "time": {
            "description": "Time is when the Attempt was interrupted.",
            "type": "string"
          },
          "trigger": {
            "description": "Trigger is PreemptionNotice, ProviderEvidence, HeartbeatLoss, ReadinessFailed, StartupTimeout, Drill, Funding or User.",
            "type": "string"
          }
        },
        "required": [
          "trigger"
        ],
        "type": "object"
      },
      "AttemptList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Attempt"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "AttemptPlacement": {
        "additionalProperties": false,
        "description": "AttemptPlacement is status.placement: the customer-safe projection of the placement decision.",
        "properties": {
          "candidates": {
            "description": "Candidates is how many offerings were considered.",
            "format": "int32",
            "type": "integer"
          },
          "explain": {
            "$ref": "#/components/schemas/PlacementExplain"
          },
          "hedged": {
            "description": "Hedged reports whether a second machine was started to race the first.",
            "type": "boolean"
          },
          "interruptible": {
            "description": "Interruptible reports whether the capacity can be reclaimed.",
            "type": "boolean"
          },
          "offering": {
            "description": "Offering is the offering class chosen, for example h100-sxm-80g-x1-us.",
            "type": "string"
          },
          "profile": {
            "description": "Profile is the placement profile: Balanced, Cost or Speed.",
            "type": "string"
          },
          "rateUSDPerHour": {
            "description": "RateUSDPerHour is the capacity's hourly rate.",
            "type": "string"
          },
          "regionClass": {
            "description": "RegionClass is the offering's region class.",
            "type": "string"
          },
          "warmReuse": {
            "description": "WarmReuse reports whether the Attempt reused a warm machine of the organization.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "AttemptPredicted": {
        "additionalProperties": false,
        "description": "AttemptPredicted is status.predicted, from the placement.",
        "properties": {
          "costUSD": {
            "description": "CostUSD is the predicted cost of the Attempt.",
            "type": "string"
          },
          "hours": {
            "description": "Hours is the predicted run time in decimal hours.",
            "type": "string"
          },
          "interruptionRate": {
            "description": "InterruptionRate is the predicted interruptions per hour, as a decimal.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AttemptProgress": {
        "additionalProperties": false,
        "description": "AttemptProgress is status.progress.",
        "properties": {
          "stage": {
            "description": "Stage is the kernel phase: Pending, Placing, Acquiring, Starting, Running, Succeeded, Failed, Lost or Stopped.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AttemptRestore": {
        "additionalProperties": false,
        "description": "AttemptRestore is the restore point an Attempt started from.",
        "properties": {
          "cursor": {
            "$ref": "#/components/schemas/AttemptCursor"
          },
          "seq": {
            "description": "Seq is the sequence number of the committed checkpoint or snapshot it restored.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "AttemptSpec": {
        "additionalProperties": false,
        "description": "AttemptSpec says where the Attempt runs in its owner and what it resumed from.",
        "properties": {
          "epoch": {
            "description": "Epoch is the fence number, increased on every replacement in the slot.",
            "format": "int64",
            "type": "integer"
          },
          "gang": {
            "$ref": "#/components/schemas/AttemptGang"
          },
          "restoreFrom": {
            "$ref": "#/components/schemas/AttemptRestore"
          },
          "slot": {
            "description": "Slot is the owner's position the Attempt fills: the Job index, 0 for a Sandbox or Workspace, the worker slot of a Function or Agent, build or import.",
            "type": "string"
          }
        },
        "required": [
          "slot",
          "epoch"
        ],
        "type": "object"
      },
      "AttemptStatus": {
        "additionalProperties": false,
        "description": "AttemptStatus is the observed state of an Attempt.",
        "properties": {
          "actual": {
            "$ref": "#/components/schemas/AttemptActual"
          },
          "checkpoints": {
            "$ref": "#/components/schemas/AttemptCheckpoints"
          },
          "exitCode": {
            "description": "ExitCode is the container's exit code, once it exited.",
            "format": "int32",
            "type": "integer"
          },
          "interruption": {
            "$ref": "#/components/schemas/AttemptInterruption"
          },
          "phase": {
            "description": "Phase is Queued, Provisioning, Running, Succeeded, Failed (real failures and lost capacity) or Cancelled (clean stops).",
            "type": "string"
          },
          "placement": {
            "$ref": "#/components/schemas/AttemptPlacement"
          },
          "predicted": {
            "$ref": "#/components/schemas/AttemptPredicted"
          },
          "progress": {
            "$ref": "#/components/schemas/AttemptProgress"
          },
          "reason": {
            "description": "Reason is the failure class when Failed (for example Preempted, NodeLost, CustomerExit) and Stopped, Suspended, Unfunded, MaxCostReached or Released when Cancelled.",
            "type": "string"
          },
          "signal": {
            "description": "Signal is the signal that ended the container, if one did.",
            "format": "int32",
            "type": "integer"
          },
          "supersededBy": {
            "description": "SupersededBy names the next Attempt in the slot.",
            "type": "string"
          },
          "timings": {
            "$ref": "#/components/schemas/AttemptTimings"
          }
        },
        "type": "object"
      },
      "AttemptTimings": {
        "additionalProperties": false,
        "description": "AttemptTimings are an Attempt's milestones. The billing clock runs from billingStartTime to deletionProvenTime; commandStartedTime splits Boot (or Restore, for an Attempt that resumes) from Running.",
        "properties": {
          "acquiredTime": {
            "description": "AcquiredTime is when its placement was persisted and capacity requested.",
            "type": "string"
          },
          "billingStartTime": {
            "description": "BillingStartTime is when the supplier started billing the machine.",
            "type": "string"
          },
          "bootSeconds": {
            "description": "BootSeconds is the time from acquisition to the program's start.",
            "format": "int64",
            "type": "integer"
          },
          "commandStartedTime": {
            "description": "CommandStartedTime is when the program started.",
            "type": "string"
          },
          "deletionProvenTime": {
            "description": "DeletionProvenTime is when the machine's deletion was confirmed.",
            "type": "string"
          },
          "finishedTime": {
            "description": "FinishedTime is when the Attempt ended.",
            "type": "string"
          },
          "pullSeconds": {
            "description": "PullSeconds is the image pull's part of it.",
            "format": "int64",
            "type": "integer"
          },
          "queuedTime": {
            "description": "QueuedTime is when the Attempt was created.",
            "type": "string"
          },
          "registeredTime": {
            "description": "RegisteredTime is when the machine registered and passed readiness.",
            "type": "string"
          },
          "restoreSeconds": {
            "description": "RestoreSeconds is BootSeconds for an Attempt that resumed, restore included.",
            "format": "int64",
            "type": "integer"
          },
          "teardownSeconds": {
            "description": "TeardownSeconds is the time from the stop to confirmed deletion.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Band": {
        "additionalProperties": false,
        "description": "Band is a forecast's median and 90th percentile.",
        "properties": {
          "p50": {
            "description": "P50 is the median.",
            "format": "double",
            "type": "number"
          },
          "p90": {
            "description": "P90 is the 90th percentile.",
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "p50",
          "p90"
        ],
        "type": "object"
      },
      "BlockingReason": {
        "additionalProperties": false,
        "description": "BlockingReason says why a create would fail now.",
        "properties": {
          "code": {
            "description": "Code is the error code the create would return, for example InsufficientCredits.",
            "type": "string"
          },
          "fix": {
            "description": "Fix says what to do.",
            "type": "string"
          },
          "message": {
            "description": "Message states the reason with the amounts involved.",
            "type": "string"
          }
        },
        "required": [
          "code"
        ],
        "type": "object"
      },
      "BucketInput": {
        "additionalProperties": false,
        "description": "BucketInput is an object in customer storage.",
        "properties": {
          "connection": {
            "description": "Connection is an S3 Connection that can read it.",
            "type": "string"
          },
          "sha256": {
            "description": "SHA256 is checked at end of stream when set.",
            "type": "string"
          },
          "uri": {
            "description": "URI is s3://bucket/key.",
            "type": "string"
          }
        },
        "required": [
          "uri",
          "connection"
        ],
        "type": "object"
      },
      "Budget": {
        "additionalProperties": false,
        "description": "Budget is an enforced money limit over the org, a project or a label selector, per UTC calendar month or in total. Every hold and renewal of work in scope must fit a Block Budget: when it is used up, work in scope stops gracefully with Funded=False (BudgetExceeded) and new creates fail with 402 BudgetExceeded. A Notify Budget only sends notices. Matching uses the project and the labels an object had at admission, so relabelling running work cannot escape a Budget, and a Budget created later binds running work from its next renewal.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/BudgetSpec"
          },
          "status": {
            "$ref": "#/components/schemas/BudgetStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Budget",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "BudgetList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Budget"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "BudgetNotify": {
        "additionalProperties": false,
        "description": "BudgetNotify names extra recipients of a Budget's notices.",
        "properties": {
          "emails": {
            "description": "Emails receive the threshold and exceeded notices beside the org's billing recipients, at most 10.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "BudgetPeriodWindow": {
        "additionalProperties": false,
        "description": "BudgetPeriodWindow is the current accounting window of a Budget.",
        "properties": {
          "endTime": {
            "description": "EndTime is when the window ends; unset for Total.",
            "type": "string"
          },
          "startTime": {
            "description": "StartTime is when the window started: the UTC month start, or the Budget's creation for Total.",
            "type": "string"
          }
        },
        "required": [
          "startTime"
        ],
        "type": "object"
      },
      "BudgetScope": {
        "additionalProperties": false,
        "description": "BudgetScope narrows a Budget to a project, to objects matching a label selector, or both.",
        "properties": {
          "project": {
            "description": "Project limits the Budget to one project's objects and its storage; unset counts every project.",
            "type": "string"
          },
          "selector": {
            "$ref": "#/components/schemas/LabelSelector"
          }
        },
        "type": "object"
      },
      "BudgetSpec": {
        "additionalProperties": false,
        "description": "BudgetSpec is the limit, its period and its scope. Period and scope are immutable; the limit, action, thresholds and notify recipients can change.",
        "properties": {
          "action": {
            "description": "Action is what happens at the limit: Block stops new holds and renewals in scope, Notify only notifies. Defaults to Block.",
            "type": "string"
          },
          "limitUSD": {
            "description": "LimitUSD is the amount the period's spend plus holds may reach, such as \"2000.00\". It must be above 0.",
            "type": "string"
          },
          "notify": {
            "$ref": "#/components/schemas/BudgetNotify"
          },
          "period": {
            "description": "Period is the accounting window: Monthly (the UTC calendar month) or Total (since creation). Defaults to Monthly. Immutable.",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/BudgetScope"
          },
          "thresholds": {
            "description": "Thresholds are the percentages of the limit at which a notice is sent, at most 5 values in 1-100, once per period each. Defaults to 50, 80 and 100.",
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "required": [
          "limitUSD"
        ],
        "type": "object"
      },
      "BudgetStatus": {
        "additionalProperties": false,
        "description": "BudgetStatus is the current period's accounting, rendered from the enforcement row whenever the Budget is read.",
        "properties": {
          "conditions": {
            "description": "Conditions carry Exceeded (LimitReached) while nothing is left for a new hold.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "currentPeriod": {
            "$ref": "#/components/schemas/BudgetPeriodWindow"
          },
          "heldUSD": {
            "description": "HeldUSD is what running work in scope holds against the limit.",
            "type": "string"
          },
          "notifiedThresholds": {
            "description": "NotifiedThresholds are the thresholds whose notice was sent this period.",
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "nullable": true,
            "type": "array"
          },
          "percentUsed": {
            "description": "PercentUsed is spent as a whole percentage of the limit.",
            "format": "int32",
            "type": "integer"
          },
          "remainingUSD": {
            "description": "RemainingUSD is limit minus spent minus held, never below 0.",
            "type": "string"
          },
          "spentUSD": {
            "description": "SpentUSD is what the period's captures charged.",
            "type": "string"
          }
        },
        "required": [
          "percentUsed"
        ],
        "type": "object"
      },
      "CheckpointPolicy": {
        "additionalProperties": false,
        "description": "CheckpointPolicy configures checkpoints.",
        "properties": {
          "format": {
            "description": "Format is Snapshot, or Dcp for torch.distributed.checkpoint (the default for distributed Jobs).",
            "type": "string"
          },
          "integration": {
            "description": "Integration is Auto, None or HFTrainer.",
            "type": "string"
          },
          "interval": {
            "description": "Interval is auto or a duration from 1m to 6h.",
            "type": "string"
          },
          "maxSize": {
            "description": "MaxSize is checked before upload (default 1Ti, at most 2Ti).",
            "type": "string"
          },
          "paths": {
            "description": "Paths are saved together in one checkpoint (at most 64; default /nodus/state).",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "retainAfterFinish": {
            "description": "RetainAfterFinish keeps checkpoints this long after the Job finishes (default 168h).",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CheckpointStatus": {
        "additionalProperties": false,
        "description": "CheckpointStatus is the latest committed checkpoint.",
        "properties": {
          "interval": {
            "description": "Interval is the cadence in use.",
            "type": "string"
          },
          "restoredFromSeq": {
            "description": "RestoredFromSeq is the checkpoint the current attempt restored.",
            "format": "int64",
            "type": "integer"
          },
          "seq": {
            "description": "Seq is the checkpoint sequence number.",
            "format": "int64",
            "type": "integer"
          },
          "size": {
            "description": "Size is its size in bytes.",
            "format": "int64",
            "type": "integer"
          },
          "time": {
            "description": "Time is when it committed.",
            "type": "string"
          }
        },
        "required": [
          "seq"
        ],
        "type": "object"
      },
      "CloudAccount": {
        "additionalProperties": false,
        "description": "CloudAccount is read-only observation of a customer's AWS or GCP account: inventory, GPUs and spend. Nodus never launches, stops or changes anything in the customer's cloud. The object holds only the non-secret binding; the grant material is stored encrypted and owned by the account.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/CloudAccountSpec"
          },
          "status": {
            "$ref": "#/components/schemas/CloudAccountStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "CloudAccount",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "CloudAccountList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/CloudAccount"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "CloudAccountSpec": {
        "additionalProperties": false,
        "description": "CloudAccountSpec is the binding to one cloud account.",
        "properties": {
          "aws": {
            "$ref": "#/components/schemas/AWSAccount"
          },
          "gcp": {
            "$ref": "#/components/schemas/GCPAccount"
          },
          "observe": {
            "description": "Observe lists the reads that run. Default [Inventory, GPUs, Spend].",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "provider": {
            "description": "Provider is AWS or GCP. Immutable.",
            "type": "string"
          },
          "sync": {
            "$ref": "#/components/schemas/CloudAccountSync"
          }
        },
        "required": [
          "provider"
        ],
        "type": "object"
      },
      "CloudAccountStatus": {
        "additionalProperties": false,
        "description": "CloudAccountStatus is the latest observation.",
        "properties": {
          "conditions": {
            "description": "Conditions carries Verified and Synced.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "externalId": {
            "description": "ExternalID is the AWS external id the role's trust policy must name.",
            "type": "string"
          },
          "handledRequests": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "HandledRequests records the nodus.dev/verify-requested-at value the last requested sync answered.",
            "type": "object"
          },
          "inventory": {
            "$ref": "#/components/schemas/CloudInventorySummary"
          },
          "lastSyncTime": {
            "description": "LastSyncTime is when the latest sync finished.",
            "type": "string"
          },
          "phase": {
            "description": "Phase is Pending, Ready or Failed.",
            "type": "string"
          },
          "spend": {
            "$ref": "#/components/schemas/CloudSpendSummary"
          }
        },
        "type": "object"
      },
      "CloudAccountSync": {
        "additionalProperties": false,
        "description": "CloudAccountSync sets the observation cadence.",
        "properties": {
          "interval": {
            "description": "Interval is from 15m to 24h. Default 1h.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CloudInventorySummary": {
        "additionalProperties": false,
        "description": "CloudInventorySummary counts what the latest sync saw.",
        "properties": {
          "gpus": {
            "additionalProperties": {
              "format": "int32",
              "type": "integer"
            },
            "description": "GPUs counts GPUs per accelerator model.",
            "type": "object"
          },
          "instances": {
            "description": "Instances is the number of instances observed.",
            "format": "int32",
            "type": "integer"
          },
          "regions": {
            "description": "Regions are the regions with instances.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "required": [
          "instances"
        ],
        "type": "object"
      },
      "CloudSpendCoverage": {
        "additionalProperties": false,
        "description": "CloudSpendCoverage describes past UTC days in the requested window; today's partial day is excluded.",
        "properties": {
          "billedThrough": {
            "description": "BilledThrough is the latest day explicitly reported non-estimated by the source, not invoice finality.",
            "type": "string"
          },
          "completeDays": {
            "format": "int32",
            "type": "integer"
          },
          "estimatedDays": {
            "format": "int32",
            "type": "integer"
          },
          "missingDays": {
            "format": "int32",
            "type": "integer"
          },
          "observedDays": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "observedDays",
          "completeDays",
          "estimatedDays",
          "missingDays"
        ],
        "type": "object"
      },
      "CloudSpendCurrency": {
        "additionalProperties": false,
        "description": "CloudSpendCurrency is one currency's observed bill and optional projection.",
        "properties": {
          "byService": {
            "items": {
              "$ref": "#/components/schemas/CloudSpendService"
            },
            "nullable": true,
            "type": "array"
          },
          "computeDescription": {
            "type": "string"
          },
          "computeServiceTotal": {
            "description": "ComputeServiceTotal is a service subtotal, including CPU and associated charges, never GPU-only spend.",
            "type": "string"
          },
          "coverage": {
            "$ref": "#/components/schemas/CloudSpendCoverage"
          },
          "currency": {
            "type": "string"
          },
          "daily": {
            "items": {
              "$ref": "#/components/schemas/CloudSpendPoint"
            },
            "nullable": true,
            "type": "array"
          },
          "forecast": {
            "$ref": "#/components/schemas/CloudSpendForecast"
          },
          "monthToDate": {
            "description": "MonthToDate sums returned amounts since the current month's start; coverage may be partial.",
            "type": "string"
          },
          "observedTotal": {
            "description": "ObservedTotal sums only returned amounts over the observation window.",
            "type": "string"
          }
        },
        "required": [
          "currency",
          "observedTotal",
          "monthToDate",
          "coverage",
          "daily",
          "byService",
          "forecast"
        ],
        "type": "object"
      },
      "CloudSpendForecast": {
        "additionalProperties": false,
        "description": "CloudSpendForecast extrapolates eligible observed days; it is neither a price guarantee nor a confidence band.",
        "properties": {
          "computeDescription": {
            "type": "string"
          },
          "computeServiceTotal": {
            "description": "ComputeServiceTotal projects only the explicitly classified compute-service subtotal.",
            "type": "string"
          },
          "historyDays": {
            "format": "int32",
            "type": "integer"
          },
          "historyThrough": {
            "description": "HistoryThrough is the latest UTC day used, exposing the export lag buffer.",
            "type": "string"
          },
          "horizonDays": {
            "format": "int32",
            "type": "integer"
          },
          "method": {
            "type": "string"
          },
          "status": {
            "description": "Status is Ready, InsufficientHistory, BillingAdjustments or ProvisionalSource.",
            "type": "string"
          },
          "total": {
            "description": "Total is the next HorizonDays at the recent daily average, not a month-end prediction.",
            "type": "string"
          }
        },
        "required": [
          "status",
          "method",
          "historyDays",
          "horizonDays"
        ],
        "type": "object"
      },
      "CloudSpendPoint": {
        "additionalProperties": false,
        "description": "CloudSpendPoint leaves cost absent when no amount was observed. Unknown finality never means complete.",
        "properties": {
          "complete": {
            "type": "boolean"
          },
          "cost": {
            "type": "string"
          },
          "day": {
            "type": "string"
          },
          "estimated": {
            "type": "boolean"
          }
        },
        "required": [
          "day",
          "complete"
        ],
        "type": "object"
      },
      "CloudSpendReport": {
        "additionalProperties": false,
        "description": "CloudSpendReport is the latest observation window, never a Nodus charge or a savings claim.",
        "properties": {
          "basis": {
            "description": "Basis explains adjustments and provisional billing data.",
            "type": "string"
          },
          "currencies": {
            "description": "Currencies keeps different currencies separate; absent rows are unknown, not zero.",
            "items": {
              "$ref": "#/components/schemas/CloudSpendCurrency"
            },
            "nullable": true,
            "type": "array"
          },
          "fromDay": {
            "description": "FromDay is the first requested UTC day; ToDay is exclusive.",
            "type": "string"
          },
          "source": {
            "description": "Source identifies the customer's cloud billing source.",
            "type": "string"
          },
          "toDay": {
            "type": "string"
          }
        },
        "required": [
          "fromDay",
          "toDay",
          "source",
          "basis",
          "currencies"
        ],
        "type": "object"
      },
      "CloudSpendService": {
        "additionalProperties": false,
        "description": "CloudSpendService is one service's observed subtotal in the currency report's window.",
        "properties": {
          "cost": {
            "type": "string"
          },
          "service": {
            "type": "string"
          }
        },
        "required": [
          "service",
          "cost"
        ],
        "type": "object"
      },
      "CloudSpendSummary": {
        "additionalProperties": false,
        "description": "CloudSpendSummary is the month's observed cloud spend; it never enters Nodus billing.",
        "properties": {
          "asOfTime": {
            "description": "AsOfTime is when the spend was read.",
            "type": "string"
          },
          "monthToDateUSD": {
            "description": "MonthToDateUSD is observed month-to-date USD, possibly partial; empty when no USD was observed.",
            "readOnly": true,
            "type": "string"
          },
          "report": {
            "$ref": "#/components/schemas/CloudSpendReport"
          }
        },
        "required": [
          "monthToDateUSD",
          "asOfTime"
        ],
        "type": "object"
      },
      "Condition": {
        "additionalProperties": false,
        "properties": {
          "lastTransitionTime": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "observedGeneration": {
            "format": "int64",
            "type": "integer"
          },
          "reason": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type",
          "status",
          "lastTransitionTime",
          "reason",
          "message"
        ],
        "type": "object"
      },
      "Connection": {
        "additionalProperties": false,
        "description": "Connection is an external system Nodus talks to for the customer: a database for sinks and query imports, W\u0026B, the GitHub App or an S3 bucket. It is verified through the SSRF-safe dialer and its hosts are pinned.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/ConnectionSpec"
          },
          "status": {
            "$ref": "#/components/schemas/ConnectionStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Connection",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "ConnectionList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Connection"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "ConnectionQuerySource": {
        "additionalProperties": false,
        "description": "ConnectionQuerySource is a SQL query exported through a Postgres-type Connection.",
        "properties": {
          "connection": {
            "description": "Connection names the Connection.",
            "type": "string"
          },
          "format": {
            "description": "Format is Parquet or CSV.",
            "type": "string"
          },
          "sql": {
            "description": "SQL is the read-only query.",
            "type": "string"
          }
        },
        "required": [
          "connection",
          "sql"
        ],
        "type": "object"
      },
      "ConnectionSpec": {
        "additionalProperties": false,
        "description": "ConnectionSpec is a Connection's settings.",
        "properties": {
          "neon": {
            "$ref": "#/components/schemas/NeonConnection"
          },
          "region": {
            "description": "Region is a data residency hint mapped to a region class.",
            "type": "string"
          },
          "s3": {
            "$ref": "#/components/schemas/S3Connection"
          },
          "scope": {
            "description": "Scope is Read, Write or ReadWrite for database types.",
            "type": "string"
          },
          "secret": {
            "description": "Secret names the credential Secret; not for GitHub.",
            "type": "string"
          },
          "type": {
            "description": "Type is Postgres, Neon, Supabase, WandB, GitHub or S3; immutable.",
            "type": "string"
          },
          "wandb": {
            "$ref": "#/components/schemas/WandBConnection"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "ConnectionStatus": {
        "additionalProperties": false,
        "description": "ConnectionStatus is the last verification.",
        "properties": {
          "conditions": {
            "description": "Conditions carry Verified.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "egressHosts": {
            "description": "EgressHosts are pinned hosts added to the egress allowlist of objects that attach it.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "externalId": {
            "description": "ExternalID is the AWS external id an S3 Connection's role trust policy must require; Nodus derives it from the Connection and sends it on every AssumeRole.",
            "type": "string"
          },
          "github": {
            "$ref": "#/components/schemas/GitHubInstallation"
          },
          "installURL": {
            "description": "InstallURL opens the GitHub App install while a GitHub Connection is Pending.",
            "type": "string"
          },
          "lastVerifiedTime": {
            "description": "LastVerifiedTime is the last verification.",
            "type": "string"
          },
          "message": {
            "description": "Message is a scrubbed explanation.",
            "type": "string"
          },
          "observedGeneration": {
            "description": "ObservedGeneration is the spec generation the status reflects.",
            "format": "int64",
            "type": "integer"
          },
          "phase": {
            "description": "Phase is Pending, Ready (the last verification passed) or Failed.",
            "type": "string"
          },
          "reason": {
            "description": "Reason is VerificationFailed or InstallationRemoved.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Cost": {
        "additionalProperties": false,
        "description": "Cost is status.cost on every kind that spends money. It is a display copy of the ledger: amounts are decimal USD strings, and nothing is charged from these fields.",
        "properties": {
          "bySegment": {
            "$ref": "#/components/schemas/CostSegments"
          },
          "final": {
            "description": "Final is true once the final charge has posted.",
            "type": "boolean"
          },
          "fundedUntilTime": {
            "description": "FundedUntilTime is when the current holds stop paying for the object.",
            "type": "string"
          },
          "heldUSD": {
            "description": "HeldUSD is what is currently held for it.",
            "type": "string"
          },
          "limitUSD": {
            "description": "LimitUSD is the object's maxCostUSD, if it has one.",
            "type": "string"
          },
          "rateUSDPerHour": {
            "description": "RateUSDPerHour is the sum of the hourly rates of its capacity that is still billing.",
            "type": "string"
          },
          "totalUSD": {
            "description": "TotalUSD is what has been charged for this object so far.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CostSegments": {
        "additionalProperties": false,
        "description": "CostSegments splits a charge by billing segment.",
        "properties": {
          "bootUSD": {
            "description": "BootUSD is the charge from the start of billing until the program started.",
            "type": "string"
          },
          "coveredByNodus": {
            "description": "CoveredByNodus lists the segments (Boot, Running, Restore, Teardown) with time Nodus paid for instead of charging it, such as the start and teardown of a run that failed because of Nodus.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "restoreUSD": {
            "description": "RestoreUSD is the charge for bringing a replacement up after capacity was lost.",
            "type": "string"
          },
          "runningUSD": {
            "description": "RunningUSD is the charge while the program ran.",
            "type": "string"
          },
          "teardownUSD": {
            "description": "TeardownUSD is the charge from stop until deletion was confirmed, with the billing increment.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CreditGrant": {
        "additionalProperties": false,
        "description": "CreditGrant is promotional or operator credit in its own wallet bucket: the starter grant, a promo code redemption, an admin credit or goodwill. The system and operators create grants; customers read them. A grant is drawn before purchased credit, soonest expiry first, and its unspent remainder expires.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/CreditGrantSpec"
          },
          "status": {
            "$ref": "#/components/schemas/CreditGrantStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "CreditGrant",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "CreditGrantList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/CreditGrant"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "CreditGrantSpec": {
        "additionalProperties": false,
        "description": "CreditGrantSpec is what was granted.",
        "properties": {
          "amountUSD": {
            "description": "AmountUSD is the credit granted, such as \"30.00\".",
            "type": "string"
          },
          "expirationTime": {
            "description": "ExpirationTime is when the unspent remainder expires; unset means it never does.",
            "type": "string"
          },
          "promoCode": {
            "description": "PromoCode is the redeemed code, masked to its last four characters (****AB12).",
            "type": "string"
          },
          "reason": {
            "description": "Reason is the note shown with the grant.",
            "type": "string"
          },
          "scope": {
            "description": "Scope restricts the grant to one kind of usage, such as nodus/auto for Composer model calls; unset grants pay for any usage.",
            "type": "string"
          },
          "source": {
            "description": "Source is where the grant came from.",
            "type": "string"
          }
        },
        "required": [
          "amountUSD",
          "source"
        ],
        "type": "object"
      },
      "CreditGrantStatus": {
        "additionalProperties": false,
        "description": "CreditGrantStatus is how much of the grant is left. RemainingUSD + SpentUSD + ExpiredUSD = AmountUSD.",
        "properties": {
          "conditions": {
            "description": "Conditions carry Expired once the remainder has expired.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "expiredUSD": {
            "description": "ExpiredUSD is the remainder that expired unspent.",
            "type": "string"
          },
          "grantedTime": {
            "description": "GrantedTime is when the credit was added.",
            "type": "string"
          },
          "heldUSD": {
            "description": "HeldUSD is the part of RemainingUSD held for running work.",
            "type": "string"
          },
          "remainingUSD": {
            "description": "RemainingUSD is the unspent credit, including any held for running work.",
            "type": "string"
          },
          "spentUSD": {
            "description": "SpentUSD is what usage has drawn from the grant.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "DeviceCounts": {
        "additionalProperties": false,
        "description": "DeviceCounts counts one device model's devices.",
        "properties": {
          "free": {
            "description": "Free is the number of devices with no work.",
            "format": "int32",
            "type": "integer"
          },
          "total": {
            "description": "Total is the number of devices.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "total",
          "free"
        ],
        "type": "object"
      },
      "Distributed": {
        "additionalProperties": false,
        "description": "Distributed runs the Job as a gang of nodes that start together and restart together (Beta).",
        "properties": {
          "gpusPerNode": {
            "description": "GPUsPerNode is 1, 2, 4 or 8 and equals resources.gpu.count when both are set.",
            "format": "int32",
            "type": "integer"
          },
          "launcher": {
            "description": "Launcher is Plain (env contract only), Torchrun, Ray, Verl, Accelerate or Deepspeed.",
            "type": "string"
          },
          "maxAssemblyRetries": {
            "description": "MaxAssemblyRetries is how many times a timed-out assembly is re-placed (0–5, default 2).",
            "format": "int32",
            "type": "integer"
          },
          "network": {
            "description": "Network is Colocated (one provider and region), Regional (one region class) or Global.",
            "type": "string"
          },
          "nodes": {
            "description": "Nodes is the gang size (2–16; the beta caps it at 8). Exactly one of nodes and totalGPUs.",
            "format": "int32",
            "type": "integer"
          },
          "startupTimeout": {
            "description": "StartupTimeout is the gang assembly budget (5m–60m, default 15m).",
            "type": "string"
          },
          "totalGPUs": {
            "description": "TotalGPUs is resolved into status.topology at admission (2–64).",
            "format": "int32",
            "type": "integer"
          },
          "transport": {
            "description": "Transport is Direct (private or direct paths only) or Auto (relayed paths allowed).",
            "type": "string"
          }
        },
        "type": "object"
      },
      "DurationBand": {
        "additionalProperties": false,
        "description": "DurationBand is a median and a 90th-percentile duration, as Go duration strings.",
        "properties": {
          "p50": {
            "description": "P50 is the median duration.",
            "type": "string"
          },
          "p90": {
            "description": "P90 is the 90th-percentile duration.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Egress": {
        "additionalProperties": false,
        "description": "Egress is the outbound network policy.",
        "properties": {
          "allow": {
            "description": "Allow lists DNS names or *.suffix patterns (AllowList only; at most 128).",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "policy": {
            "description": "Policy is Deny, AllowList or Open.",
            "type": "string"
          },
          "presets": {
            "description": "Presets add curated host lists such as python-packages or huggingface.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "EnrollmentToken": {
        "additionalProperties": false,
        "description": "EnrollmentToken admits one host into a Pool. The create response carries the nodus_et_ token and the one-line installer once; the token is single use, bound to its Pool, and expires after its ttl (at most 24 h).",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/EnrollmentTokenSpec"
          },
          "status": {
            "$ref": "#/components/schemas/EnrollmentTokenStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "EnrollmentToken",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "EnrollmentTokenList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/EnrollmentToken"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "EnrollmentTokenSpec": {
        "additionalProperties": false,
        "description": "EnrollmentTokenSpec binds a token to a Pool.",
        "properties": {
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels are copied onto the Node at enrollment.",
            "type": "object"
          },
          "pool": {
            "description": "Pool is the Pool the host joins.",
            "type": "string"
          },
          "ttl": {
            "description": "TTL is how long the token stays usable, at most 24h. Default 24h.",
            "type": "string"
          }
        },
        "required": [
          "pool"
        ],
        "type": "object"
      },
      "EnrollmentTokenStatus": {
        "additionalProperties": false,
        "description": "EnrollmentTokenStatus reports the token's lifetime and use. The secret is never in it after create.",
        "properties": {
          "expirationTime": {
            "description": "ExpirationTime is when the token stops enrolling hosts.",
            "type": "string"
          },
          "installCommand": {
            "description": "InstallCommand is the one-line installer, present only in the create response.",
            "type": "string"
          },
          "node": {
            "description": "Node is the Node the token enrolled.",
            "type": "string"
          },
          "token": {
            "description": "Token is the nodus_et_ secret, present only in the create response.",
            "type": "string"
          },
          "usedTime": {
            "description": "UsedTime is when a host consumed the token.",
            "type": "string"
          }
        },
        "required": [
          "expirationTime"
        ],
        "type": "object"
      },
      "EnvVar": {
        "additionalProperties": false,
        "description": "EnvVar is one environment variable: a literal value or a Secret key.",
        "properties": {
          "name": {
            "description": "Name matches ^[A-Za-z_][A-Za-z0-9_]*$.",
            "type": "string"
          },
          "value": {
            "description": "Value is the literal value.",
            "type": "string"
          },
          "valueFrom": {
            "$ref": "#/components/schemas/EnvVarSource"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "EnvVarSource": {
        "additionalProperties": false,
        "description": "EnvVarSource names where an env value comes from.",
        "properties": {
          "secretKeyRef": {
            "$ref": "#/components/schemas/SecretKeySelector"
          }
        },
        "type": "object"
      },
      "Environment": {
        "additionalProperties": false,
        "description": "Environment is an RL and evaluation environment: an OCI image with two entrypoints. `nodus-env tasks --split \u003ctrain|test\u003e --seed N` writes JSONL {taskId, prompt, metadata} with no answers, and `nodus-env grade` reads {taskId, completion} lines on stdin and writes {taskId, verdict, reward, evidence}. Every Environment has a grader, run on the one platform grading path shared by agent evals and TrainingJobs.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/EnvironmentSpec"
          },
          "status": {
            "$ref": "#/components/schemas/EnvironmentStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Environment",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "EnvironmentExample": {
        "additionalProperties": false,
        "description": "EnvironmentExample is a TrainingJob template with measured results. It has no shell strings and installs nothing at run time.",
        "properties": {
          "baseline": {
            "$ref": "#/components/schemas/ExampleScore"
          },
          "changePP": {
            "description": "ChangePP is the measured change in percentage points.",
            "format": "double",
            "type": "number"
          },
          "measuredOn": {
            "$ref": "#/components/schemas/ExampleMeasurement"
          },
          "mode": {
            "description": "Mode is Train or Evaluate.",
            "type": "string"
          },
          "model": {
            "description": "Model is a pinned model URI (hf://\u003crepo\u003e@\u003c40-hex revision\u003e).",
            "type": "string"
          },
          "name": {
            "description": "Name is unique within the environment; `from_example(\"nodus/gsm8k:\u003cname\u003e\")` selects it.",
            "type": "string"
          },
          "parameters": {
            "description": "Parameters are the runtime parameters."
          },
          "runtime": {
            "description": "Runtime is the TrainingRuntime the example runs on, for example nodus/grpo-lora.",
            "type": "string"
          },
          "runtimeSeconds": {
            "description": "RuntimeSeconds is the measured wall time.",
            "format": "int64",
            "type": "integer"
          },
          "tasks": {
            "description": "Tasks is the number of held-out tasks the example measures.",
            "format": "int32",
            "type": "integer"
          },
          "trained": {
            "$ref": "#/components/schemas/ExampleScore"
          }
        },
        "required": [
          "name",
          "mode",
          "runtime"
        ],
        "type": "object"
      },
      "EnvironmentGrader": {
        "additionalProperties": false,
        "description": "EnvironmentGrader is one grader.",
        "properties": {
          "description": {
            "description": "Description says what it checks.",
            "type": "string"
          },
          "kind": {
            "description": "Kind is Program or ExactMatch.",
            "type": "string"
          },
          "name": {
            "description": "Name identifies the grader in verdicts.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "kind"
        ],
        "type": "object"
      },
      "EnvironmentLicenses": {
        "additionalProperties": false,
        "description": "EnvironmentLicenses are SPDX license ids.",
        "properties": {
          "code": {
            "description": "Code is the code license.",
            "type": "string"
          },
          "data": {
            "description": "Data is the data license.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "EnvironmentList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Environment"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "EnvironmentPackage": {
        "additionalProperties": false,
        "description": "EnvironmentPackage is exactly one of image and pip.",
        "properties": {
          "image": {
            "description": "Image is a digest-pinned OCI image reference.",
            "type": "string"
          },
          "loader": {
            "description": "Loader is the function the generated nodus-env shim calls for verifiers packages (default load_environment).",
            "type": "string"
          },
          "pip": {
            "$ref": "#/components/schemas/PipPackage"
          }
        },
        "type": "object"
      },
      "EnvironmentRequirements": {
        "additionalProperties": false,
        "description": "EnvironmentRequirements are hints for choosing a model and GPU.",
        "properties": {
          "gpu": {
            "description": "GPU is the smallest useful GPU type.",
            "type": "string"
          },
          "memory": {
            "description": "Memory is the GPU memory a typical model needs.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "EnvironmentSpec": {
        "additionalProperties": false,
        "description": "EnvironmentSpec describes an environment package and its task contract.",
        "properties": {
          "category": {
            "description": "Category is Reasoning, Math, Code, Games, Control or Custom.",
            "type": "string"
          },
          "examples": {
            "description": "Examples are TrainingJob templates with measured results; `TrainingJob.from_example` starts from one.",
            "items": {
              "$ref": "#/components/schemas/EnvironmentExample"
            },
            "nullable": true,
            "type": "array"
          },
          "graders": {
            "description": "Graders lists the environment's graders (default: the image's own Program grader).",
            "items": {
              "$ref": "#/components/schemas/EnvironmentGrader"
            },
            "nullable": true,
            "type": "array"
          },
          "heldOutMeasures": {
            "description": "HeldOutMeasures lists TrainedTask (default) and Transfer.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "licenses": {
            "$ref": "#/components/schemas/EnvironmentLicenses"
          },
          "modes": {
            "description": "Modes lists Train and Evaluate (default [Evaluate]).",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "package": {
            "$ref": "#/components/schemas/EnvironmentPackage"
          },
          "publisher": {
            "description": "Publisher names who maintains the environment.",
            "type": "string"
          },
          "readiness": {
            "description": "Readiness is Research (default) or Stable.",
            "type": "string"
          },
          "requirements": {
            "$ref": "#/components/schemas/EnvironmentRequirements"
          },
          "rewardType": {
            "description": "RewardType is Binary (default) or Scalar.",
            "type": "string"
          },
          "sampleTask": {
            "description": "SampleTask is one example task for the catalog (at most 4 KiB)."
          },
          "sandbox": {
            "$ref": "#/components/schemas/GradingSandbox"
          },
          "sourceURL": {
            "description": "SourceURL links the environment's source.",
            "type": "string"
          },
          "splits": {
            "$ref": "#/components/schemas/EnvironmentSplits"
          },
          "summary": {
            "description": "Summary is one sentence for the catalog.",
            "type": "string"
          },
          "version": {
            "description": "Version is a SemVer version; references use nodus/\u003cname\u003e@\u003cversion\u003e.",
            "type": "string"
          }
        },
        "required": [
          "package",
          "version"
        ],
        "type": "object"
      },
      "EnvironmentSplitCounts": {
        "additionalProperties": false,
        "description": "EnvironmentSplitCounts are materialized task counts.",
        "properties": {
          "test": {
            "description": "Test is the number of held-out tasks.",
            "format": "int32",
            "type": "integer"
          },
          "train": {
            "description": "Train is the number of training tasks.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "train",
          "test"
        ],
        "type": "object"
      },
      "EnvironmentSplits": {
        "additionalProperties": false,
        "description": "EnvironmentSplits declares split sizes.",
        "properties": {
          "test": {
            "$ref": "#/components/schemas/SplitSize"
          },
          "train": {
            "$ref": "#/components/schemas/SplitSize"
          }
        },
        "required": [
          "train",
          "test"
        ],
        "type": "object"
      },
      "EnvironmentStatus": {
        "additionalProperties": false,
        "description": "EnvironmentStatus is written by the Environment controller.",
        "properties": {
          "conditions": {
            "description": "Conditions include Verified (digest resolved; managed environments signature-checked).",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "digest": {
            "description": "Digest is the resolved (or built) image digest.",
            "type": "string"
          },
          "observedGeneration": {
            "description": "ObservedGeneration is the generation the status describes.",
            "format": "int64",
            "type": "integer"
          },
          "phase": {
            "description": "Phase is Pending while the image is resolved or built and the manifests are materialized, Ready or Failed.",
            "type": "string"
          },
          "splits": {
            "$ref": "#/components/schemas/EnvironmentSplitCounts"
          }
        },
        "type": "object"
      },
      "Estimate": {
        "additionalProperties": false,
        "description": "Estimate is returned in status.estimate by a dry-run (`?dryRun=All`) and on create for every compute kind (ADR-031). Amounts are decimal USD strings; the ETag of the dry-run response binds a later create to it.",
        "properties": {
          "assemblyBoundUSD": {
            "description": "AssemblyBoundUSD is the most a multi-node Job can cost if its members never assemble.",
            "type": "string"
          },
          "blockingReasons": {
            "description": "BlockingReasons say why a real create would fail now, with the amounts and a fix.",
            "items": {
              "$ref": "#/components/schemas/BlockingReason"
            },
            "nullable": true,
            "type": "array"
          },
          "concurrentHoldUSD": {
            "description": "ConcurrentHoldUSD is the total of the holds for every slot that starts at once.",
            "type": "string"
          },
          "costUSD": {
            "$ref": "#/components/schemas/USDBand"
          },
          "gangHoldUSD": {
            "description": "GangHoldUSD is the total of the member holds of a multi-node Job.",
            "type": "string"
          },
          "holdUSD": {
            "description": "HoldUSD is the first hold that must fit your balance, every matching Budget and the object's own cap.",
            "type": "string"
          },
          "minimumChargeUSD": {
            "description": "MinimumChargeUSD is the billing increment rounding charged once per allocation.",
            "type": "string"
          },
          "overheadUSD": {
            "$ref": "#/components/schemas/USDBand"
          },
          "placementPreview": {
            "$ref": "#/components/schemas/PlacementPreview"
          },
          "pricebookVersion": {
            "description": "PricebookVersion is the price book the estimate used.",
            "type": "string"
          },
          "rateUSDPerHour": {
            "description": "RateUSDPerHour is the hourly rate of the chosen capacity.",
            "type": "string"
          },
          "startup": {
            "$ref": "#/components/schemas/StartupEstimate"
          },
          "topology": {
            "description": "Topology is the resolved multi-node topology of a gang Job."
          },
          "validUntil": {
            "description": "ValidUntil is when the prices this estimate used stop being current. A create bound by If-Match is admitted after it too, and never placed above rateUSDPerHour plus 10 %.",
            "type": "string"
          },
          "warnings": {
            "description": "Warnings are non-blocking notes, for example ColdStart or InterruptibleSelected.",
            "items": {
              "$ref": "#/components/schemas/EstimateWarning"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "EstimateWarning": {
        "additionalProperties": false,
        "description": "EstimateWarning is a non-blocking note on an estimate.",
        "properties": {
          "code": {
            "description": "Code is the CamelCase warning code.",
            "type": "string"
          },
          "message": {
            "description": "Message explains the warning.",
            "type": "string"
          }
        },
        "required": [
          "code"
        ],
        "type": "object"
      },
      "ExampleMeasurement": {
        "additionalProperties": false,
        "description": "ExampleMeasurement says where and when an example was measured.",
        "properties": {
          "date": {
            "description": "Date is the measurement date (YYYY-MM-DD).",
            "type": "string"
          },
          "offering": {
            "description": "Offering is the offering id.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ExampleScore": {
        "additionalProperties": false,
        "description": "ExampleScore is a measured pass rate in [0, 1].",
        "properties": {
          "passRate": {
            "description": "PassRate is passed divided by scored tasks.",
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "passRate"
        ],
        "type": "object"
      },
      "Function": {
        "additionalProperties": false,
        "description": "Function is a deployed Python function served by a pool of warm workers. `.remote()`, `.spawn()` and `.map()` create FunctionCalls, and the shared worker pool sizes the worker attempts between scaling.minWorkers and scaling.maxWorkers.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/FunctionSpec"
          },
          "status": {
            "$ref": "#/components/schemas/FunctionStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Function",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": [
            "restart"
          ],
          "States": [
            "Running",
            "Stopped"
          ],
          "Tools": null
        }
      },
      "FunctionCall": {
        "additionalProperties": false,
        "description": "FunctionCall is one invocation of a Function. `.remote()` and `.spawn()` create one; `.map()` creates one per input in batches of up to 1,000. Calls are kept 7 days after they end.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/FunctionCallSpec"
          },
          "status": {
            "$ref": "#/components/schemas/FunctionCallStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "FunctionCall",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": [
            "Cancelled"
          ],
          "Tools": [
            "logs",
            "apply",
            "wait"
          ]
        }
      },
      "FunctionCallList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/FunctionCall"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "FunctionCallSpec": {
        "additionalProperties": false,
        "description": "FunctionCallSpec describes a call. Everything but state is immutable.",
        "properties": {
          "function": {
            "description": "Function names a Function in the project.",
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/Payload"
          },
          "mapId": {
            "description": "MapID groups the calls of one `.map()`; the server adds the label nodus.dev/map.",
            "type": "string"
          },
          "mapIndex": {
            "description": "MapIndex is the call's position in its `.map()`.",
            "format": "int32",
            "type": "integer"
          },
          "session": {
            "description": "Session is the caller's session id; claims take turns between sessions so no caller starves.",
            "type": "string"
          },
          "state": {
            "description": "State is Running (the default) or the cancel state.",
            "type": "string"
          },
          "timeout": {
            "description": "Timeout is the limit of this call, at most the Function's (default the Function's).",
            "type": "string"
          }
        },
        "required": [
          "function",
          "input"
        ],
        "type": "object"
      },
      "FunctionCallStatus": {
        "additionalProperties": false,
        "description": "FunctionCallStatus is what Nodus observed about a call.",
        "properties": {
          "completionTime": {
            "description": "CompletionTime is when the call ended.",
            "type": "string"
          },
          "conditions": {
            "description": "Conditions are Funded and Scheduled.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "costUSD": {
            "description": "CostUSD is the worker time attributed to the call, whole seconds at the Function's per-call rate.",
            "type": "string"
          },
          "error": {
            "$ref": "#/components/schemas/RemoteError"
          },
          "message": {
            "description": "Message explains the phase in a sentence.",
            "type": "string"
          },
          "phase": {
            "description": "Phase is Queued, Running, Recovering, Succeeded, Failed or one of the two cancel phases.",
            "type": "string"
          },
          "reason": {
            "description": "Reason is RemoteError, DeadlineExceeded, RecoveryLimitExceeded, FunctionDeleted or the cancel reason.",
            "type": "string"
          },
          "recoveries": {
            "description": "Recoveries counts the re-dispatches after a worker loss.",
            "format": "int32",
            "type": "integer"
          },
          "result": {
            "$ref": "#/components/schemas/Payload"
          },
          "retries": {
            "description": "Retries counts the exception retries used.",
            "format": "int32",
            "type": "integer"
          },
          "startTime": {
            "description": "StartTime is when a worker last started the call.",
            "type": "string"
          },
          "worker": {
            "$ref": "#/components/schemas/FunctionCallWorker"
          }
        },
        "type": "object"
      },
      "FunctionCallWorker": {
        "additionalProperties": false,
        "description": "FunctionCallWorker names the worker attempt a call is bound to.",
        "properties": {
          "attempt": {
            "description": "Attempt is the worker attempt id.",
            "type": "string"
          },
          "epoch": {
            "description": "Epoch is the attempt's epoch; a result from another epoch is fenced.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "attempt",
          "epoch"
        ],
        "type": "object"
      },
      "FunctionClass": {
        "additionalProperties": false,
        "description": "FunctionClass describes an `@app.cls` class.",
        "properties": {
          "methods": {
            "description": "Methods are the `@nodus.method()` names a call may name (at most 128).",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "name": {
            "description": "Name is the class name.",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "FunctionCluster": {
        "additionalProperties": false,
        "description": "FunctionCluster is spec.cluster (Beta).",
        "properties": {
          "launcher": {
            "description": "Launcher is Plain for `@nodus.clustered`.",
            "type": "string"
          },
          "network": {
            "description": "Network is the gang network placement.",
            "type": "string"
          },
          "size": {
            "description": "Size is the number of nodes of the gang.",
            "format": "int32",
            "type": "integer"
          },
          "transport": {
            "description": "Transport is the gang transport.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "FunctionCode": {
        "additionalProperties": false,
        "description": "FunctionCode locates the function the worker runs.",
        "properties": {
          "blob": {
            "description": "Blob is the content-addressed code archive shared by the App's members.",
            "type": "string"
          },
          "cls": {
            "$ref": "#/components/schemas/FunctionClass"
          },
          "module": {
            "description": "Module is the importable module path.",
            "type": "string"
          },
          "qualname": {
            "description": "Qualname is the qualified name of the function or class in the module.",
            "type": "string"
          }
        },
        "required": [
          "module",
          "qualname"
        ],
        "type": "object"
      },
      "FunctionList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Function"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "FunctionQueue": {
        "additionalProperties": false,
        "description": "FunctionQueue is status.queue.",
        "properties": {
          "queued": {
            "description": "Queued calls wait for a worker.",
            "format": "int32",
            "type": "integer"
          },
          "running": {
            "description": "Running calls are on a worker.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "queued",
          "running"
        ],
        "type": "object"
      },
      "FunctionRetries": {
        "additionalProperties": false,
        "description": "FunctionRetries is spec.retries.",
        "properties": {
          "backoffCoefficient": {
            "description": "BackoffCoefficient multiplies the delay after each retry, 1 to 10 (default 2.0).",
            "format": "double",
            "type": "number"
          },
          "initialDelay": {
            "description": "InitialDelay is the wait before the first retry (default 1s).",
            "type": "string"
          },
          "maxDelay": {
            "description": "MaxDelay caps the delay (default 60s).",
            "type": "string"
          },
          "maxRetries": {
            "description": "MaxRetries is how many times a call that raised is retried, 0 to 10.",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "FunctionScaling": {
        "additionalProperties": false,
        "description": "FunctionScaling is spec.scaling.",
        "properties": {
          "maxWorkers": {
            "description": "MaxWorkers bounds the pool, 1 to 1000 (default 10).",
            "format": "int32",
            "type": "integer"
          },
          "minWorkers": {
            "description": "MinWorkers stay warm even when idle, 0 to maxWorkers; an idle one is billed as warm capacity.",
            "format": "int32",
            "type": "integer"
          },
          "scaledownWindow": {
            "description": "ScaledownWindow is how long an idle worker above minWorkers stays, 0s to 20m (default 60s).",
            "type": "string"
          },
          "targetConcurrency": {
            "description": "TargetConcurrency is the calls one worker runs at once, 1 to 1000 (default 1).",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "FunctionSpec": {
        "additionalProperties": false,
        "description": "FunctionSpec describes a Function. Every field is mutable: a change to code, image or resources rolls the workers, and in-flight calls finish on the old ones. maxCostUSD can only be raised.",
        "properties": {
          "args": {
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "cluster": {
            "$ref": "#/components/schemas/FunctionCluster"
          },
          "code": {
            "$ref": "#/components/schemas/FunctionCode"
          },
          "command": {
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "connections": {
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "env": {
            "items": {
              "$ref": "#/components/schemas/EnvVar"
            },
            "nullable": true,
            "type": "array"
          },
          "image": {
            "type": "string"
          },
          "imagePullSecrets": {
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "imageRef": {
            "type": "string"
          },
          "initCommand": {
            "$ref": "#/components/schemas/InitCommand"
          },
          "maxCostUSD": {
            "description": "MaxCostUSD caps what the Function's workers may spend in total. It can only be raised.",
            "type": "string"
          },
          "network": {
            "$ref": "#/components/schemas/Network"
          },
          "placement": {
            "$ref": "#/components/schemas/Placement"
          },
          "python": {
            "description": "Python is the interpreter minor version of the image, 3.10 to 3.13. A caller on another minor gets Invalid.",
            "type": "string"
          },
          "recovery": {
            "$ref": "#/components/schemas/Recovery"
          },
          "resources": {
            "$ref": "#/components/schemas/Resources"
          },
          "retries": {
            "$ref": "#/components/schemas/FunctionRetries"
          },
          "scaling": {
            "$ref": "#/components/schemas/FunctionScaling"
          },
          "secrets": {
            "items": {
              "$ref": "#/components/schemas/SecretMount"
            },
            "nullable": true,
            "type": "array"
          },
          "serviceAccountName": {
            "type": "string"
          },
          "sidecars": {
            "items": {
              "$ref": "#/components/schemas/Sidecar"
            },
            "nullable": true,
            "type": "array"
          },
          "state": {
            "description": "State is the desired state: Running (the default) or Stopped, which drains the workers to zero while new calls queue.",
            "type": "string"
          },
          "timeout": {
            "description": "Timeout is the limit of one call, 1s to 24h (default 300s).",
            "type": "string"
          },
          "volumes": {
            "items": {
              "$ref": "#/components/schemas/VolumeMount"
            },
            "nullable": true,
            "type": "array"
          },
          "workingDir": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "python"
        ],
        "type": "object"
      },
      "FunctionStatus": {
        "additionalProperties": false,
        "description": "FunctionStatus is what Nodus observed about a Function.",
        "properties": {
          "appVersion": {
            "description": "AppVersion is the App version that last deployed this Function.",
            "format": "int64",
            "type": "integer"
          },
          "conditions": {
            "description": "Conditions are Ready (WorkersReady) and Funded.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "cost": {
            "$ref": "#/components/schemas/Cost"
          },
          "estimate": {
            "$ref": "#/components/schemas/Estimate"
          },
          "handledRequests": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "HandledRequests records the restart requests the controller acted on.",
            "type": "object"
          },
          "image": {
            "$ref": "#/components/schemas/ImageStatus"
          },
          "message": {
            "description": "Message explains the phase in a sentence.",
            "type": "string"
          },
          "observedGeneration": {
            "description": "ObservedGeneration is the spec generation this status reflects.",
            "format": "int64",
            "type": "integer"
          },
          "phase": {
            "description": "Phase is the lifecycle phase, from the long-running vocabulary.",
            "type": "string"
          },
          "queue": {
            "$ref": "#/components/schemas/FunctionQueue"
          },
          "reason": {
            "description": "Reason is the machine-readable reason for the phase.",
            "type": "string"
          },
          "workers": {
            "$ref": "#/components/schemas/FunctionWorkers"
          }
        },
        "type": "object"
      },
      "FunctionWorkers": {
        "additionalProperties": false,
        "description": "FunctionWorkers is status.workers.",
        "properties": {
          "busy": {
            "description": "Busy workers run at least one call.",
            "format": "int32",
            "type": "integer"
          },
          "draining": {
            "description": "Draining workers finish their calls and stop.",
            "format": "int32",
            "type": "integer"
          },
          "idle": {
            "description": "Idle workers run none.",
            "format": "int32",
            "type": "integer"
          },
          "ready": {
            "description": "Ready workers are claiming calls.",
            "format": "int32",
            "type": "integer"
          },
          "starting": {
            "description": "Starting workers are placed but not claiming yet.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "starting",
          "ready",
          "busy",
          "idle"
        ],
        "type": "object"
      },
      "GCPAccount": {
        "additionalProperties": false,
        "description": "GCPAccount is a GCP binding through a read-only grant.",
        "properties": {
          "method": {
            "description": "Method is how the customer granted access; OAuth, the default, is the only method accepted.",
            "type": "string"
          },
          "projectIds": {
            "description": "ProjectIDs are the projects Nodus observes. Empty starts Google consent before project selection.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "workloadIdentityProvider": {
            "description": "WorkloadIdentityProvider names a workload identity provider (WorkloadIdentity, which is refused).",
            "type": "string"
          }
        },
        "required": [
          "projectIds"
        ],
        "type": "object"
      },
      "GPURequest": {
        "additionalProperties": false,
        "description": "GPURequest asks for accelerators. A family (H100) matches any of its variants and never another family.",
        "properties": {
          "count": {
            "description": "Count is the GPUs per node: 1, 2, 4 or 8.",
            "format": "int32",
            "type": "integer"
          },
          "exact": {
            "description": "Exact pins the exact variant instead of matching the family.",
            "type": "boolean"
          },
          "interconnect": {
            "description": "Interconnect is Any or NVLink.",
            "type": "string"
          },
          "minMemory": {
            "description": "MinMemory is the per-GPU memory floor.",
            "type": "string"
          },
          "type": {
            "description": "Type lists 1–8 accelerator ids or families from the catalog.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "GangMember": {
        "additionalProperties": false,
        "description": "GangMember is one rank of a gang epoch.",
        "properties": {
          "attempt": {
            "description": "Attempt is the rank's attempt id.",
            "type": "string"
          },
          "offering": {
            "description": "Offering is the rank's offering key.",
            "type": "string"
          },
          "path": {
            "description": "Path is Private, Public, Direct or Relayed.",
            "type": "string"
          },
          "phase": {
            "description": "Phase is the rank attempt's phase.",
            "type": "string"
          },
          "rank": {
            "description": "Rank is 0..size-1.",
            "format": "int32",
            "type": "integer"
          },
          "regionClass": {
            "description": "RegionClass is the rank's region class.",
            "type": "string"
          }
        },
        "required": [
          "rank"
        ],
        "type": "object"
      },
      "GangProbe": {
        "additionalProperties": false,
        "description": "GangProbe is a measured network path.",
        "properties": {
          "busGbps": {
            "description": "BusGbps is the measured all-reduce bus bandwidth.",
            "type": "string"
          },
          "measuredTime": {
            "description": "MeasuredTime is when it was measured.",
            "type": "string"
          },
          "path": {
            "description": "Path is the measured path.",
            "type": "string"
          },
          "rttMs": {
            "description": "RTTMs is the measured round-trip time.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "GangStatus": {
        "additionalProperties": false,
        "description": "GangStatus is the current epoch of a gang Job, in offering keys only.",
        "properties": {
          "epoch": {
            "description": "Epoch is the gang epoch.",
            "format": "int64",
            "type": "integer"
          },
          "members": {
            "description": "Members are the ranks of this epoch.",
            "items": {
              "$ref": "#/components/schemas/GangMember"
            },
            "nullable": true,
            "type": "array"
          },
          "phase": {
            "description": "Phase is Queued, Assembling, Meshing, Starting, Running, Recovering, Stopping, Releasing or Done.",
            "type": "string"
          },
          "probe": {
            "$ref": "#/components/schemas/GangProbe"
          },
          "ready": {
            "description": "Ready is how many ranks registered, meshed and passed the probe.",
            "format": "int32",
            "type": "integer"
          },
          "rendezvous": {
            "description": "Rendezvous is rank 0's advertised address.",
            "type": "string"
          },
          "restarts": {
            "description": "Restarts counts gang restarts.",
            "format": "int32",
            "type": "integer"
          },
          "size": {
            "description": "Size is the number of ranks.",
            "format": "int32",
            "type": "integer"
          },
          "started": {
            "description": "Started is how many ranks started the command.",
            "format": "int32",
            "type": "integer"
          },
          "transport": {
            "description": "Transport is the weakest pair's path: Private, Public, Direct or Relayed.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "GitHubInstallation": {
        "additionalProperties": false,
        "description": "GitHubInstallation is a GitHub App installation.",
        "properties": {
          "account": {
            "description": "Account is the GitHub user or organization that installed the App.",
            "type": "string"
          },
          "installationId": {
            "description": "InstallationID is GitHub's id of the installation.",
            "format": "int64",
            "type": "integer"
          },
          "repositories": {
            "description": "Repositories are the first repositories the installation can see, as owner/name.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "required": [
          "account",
          "installationId"
        ],
        "type": "object"
      },
      "GitSource": {
        "additionalProperties": false,
        "description": "GitSource is a repository checkout.",
        "properties": {
          "path": {
            "description": "Path is the checkout path (default workingDir).",
            "type": "string"
          },
          "ref": {
            "description": "Ref is a branch, tag or commit.",
            "type": "string"
          },
          "repo": {
            "description": "Repo is owner/name or an https:// URL.",
            "type": "string"
          }
        },
        "required": [
          "repo"
        ],
        "type": "object"
      },
      "GradingSandbox": {
        "additionalProperties": false,
        "description": "GradingSandbox configures the grading Sandboxes. Egress is always denied and candidate code runs as an unprivileged user that cannot read the answers.",
        "properties": {
          "cpu": {
            "description": "CPU is the CPU limit of one grading Sandbox (default 1).",
            "type": "string"
          },
          "image": {
            "description": "Image overrides the grading image (default: the environment image).",
            "type": "string"
          },
          "memory": {
            "description": "Memory is the memory limit of one grading Sandbox (default 1Gi).",
            "type": "string"
          },
          "timeout": {
            "description": "Timeout bounds one grading batch (default 60s, at most 10m).",
            "type": "string"
          }
        },
        "type": "object"
      },
      "HuggingFaceSource": {
        "additionalProperties": false,
        "description": "HuggingFaceSource is a Hugging Face repository.",
        "properties": {
          "files": {
            "description": "Files are globs limiting the download.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "repo": {
            "description": "Repo is owner/name.",
            "type": "string"
          },
          "revision": {
            "description": "Revision is a 40-hex commit or a tag resolved at admission.",
            "type": "string"
          },
          "secret": {
            "description": "Secret holds HF_TOKEN for gated repositories.",
            "type": "string"
          }
        },
        "required": [
          "repo"
        ],
        "type": "object"
      },
      "Image": {
        "additionalProperties": false,
        "description": "Image is a container image Nodus builds from a base and steps or a Dockerfile, or a catalog image in the nodus project. An identical spec on the same base digest reuses the built digest.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/ImageSpec"
          },
          "status": {
            "$ref": "#/components/schemas/ImageBuildStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Image",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "ImageBuild": {
        "additionalProperties": false,
        "description": "ImageBuild describes a build attempt, or a reused digest when Cached.",
        "properties": {
          "attempt": {
            "description": "Attempt is the build attempt's id.",
            "type": "string"
          },
          "cached": {
            "description": "Cached is true when an identical build's digest was reused.",
            "type": "boolean"
          },
          "completionTime": {
            "description": "CompletionTime is when it finished.",
            "type": "string"
          },
          "costUSD": {
            "description": "CostUSD is what the build cost.",
            "type": "string"
          },
          "cpuSeconds": {
            "description": "CPUSeconds is the metered build vCPU time.",
            "format": "int64",
            "type": "integer"
          },
          "startTime": {
            "description": "StartTime is when the build started.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ImageBuildStatus": {
        "additionalProperties": false,
        "description": "ImageBuildStatus is the build's outcome.",
        "properties": {
          "build": {
            "$ref": "#/components/schemas/ImageBuild"
          },
          "conditions": {
            "description": "Conditions are the latest observations.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "digest": {
            "description": "Digest is the built manifest digest (sha256:…).",
            "type": "string"
          },
          "message": {
            "description": "Message is a scrubbed explanation.",
            "type": "string"
          },
          "observedGeneration": {
            "description": "ObservedGeneration is the spec generation the status reflects.",
            "format": "int64",
            "type": "integer"
          },
          "phase": {
            "description": "Phase is Pending, Ready or Failed.",
            "type": "string"
          },
          "progress": {
            "$ref": "#/components/schemas/ImageProgress"
          },
          "python": {
            "description": "Python is the interpreter version in the image.",
            "type": "string"
          },
          "reason": {
            "description": "Reason says why the build failed.",
            "type": "string"
          },
          "reference": {
            "description": "Reference is the pullable reference, repository@digest.",
            "type": "string"
          },
          "size": {
            "description": "Size is the compressed image size in bytes.",
            "format": "int64",
            "type": "integer"
          },
          "specHash": {
            "description": "SpecHash is the content hash of the rendered build; equal hashes share a digest.",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags maps each published tag to its digest.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "ImageCopy": {
        "additionalProperties": false,
        "description": "ImageCopy copies a blob to a path.",
        "properties": {
          "blob": {
            "description": "Blob is the blob digest (sha256:…) of a file or tar archive.",
            "type": "string"
          },
          "dest": {
            "description": "Dest is the absolute destination path.",
            "type": "string"
          }
        },
        "required": [
          "blob",
          "dest"
        ],
        "type": "object"
      },
      "ImageDockerfile": {
        "additionalProperties": false,
        "description": "ImageDockerfile is a Dockerfile build: exactly one of inline and blob.",
        "properties": {
          "blob": {
            "description": "Blob is the blob digest of the Dockerfile.",
            "type": "string"
          },
          "buildArgs": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "BuildArgs are --build-arg values.",
            "type": "object"
          },
          "context": {
            "description": "Context is the blob digest of the build context (a tar archive).",
            "type": "string"
          },
          "inline": {
            "description": "Inline is the Dockerfile text.",
            "type": "string"
          },
          "target": {
            "description": "Target is the stage to build.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ImageFromSandbox": {
        "additionalProperties": false,
        "description": "ImageFromSandbox names a Sandbox whose filesystem becomes the image.",
        "properties": {
          "includePaths": {
            "description": "IncludePaths limits the layer to these paths.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "name": {
            "description": "Name is the Sandbox.",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "ImageList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Image"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "ImageProgress": {
        "additionalProperties": false,
        "description": "ImageProgress is the stage of a running build.",
        "properties": {
          "stage": {
            "description": "Stage is Queued, Building or Pushing.",
            "type": "string"
          }
        },
        "required": [
          "stage"
        ],
        "type": "object"
      },
      "ImageSpec": {
        "additionalProperties": false,
        "description": "ImageSpec is exactly one of base (with steps), dockerfile or fromSandbox.",
        "properties": {
          "base": {
            "description": "Base is the OCI reference or catalog image (nodus/\u003cname\u003e[:\u003ctag\u003e]) the steps build on.",
            "type": "string"
          },
          "buildSecrets": {
            "description": "BuildSecrets are Secrets mounted as BuildKit secrets; never baked into layers.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "dockerfile": {
            "$ref": "#/components/schemas/ImageDockerfile"
          },
          "fromSandbox": {
            "$ref": "#/components/schemas/ImageFromSandbox"
          },
          "imagePullSecrets": {
            "description": "ImagePullSecrets are Registry Secrets for a private base.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "platform": {
            "description": "Platform is linux/amd64 or linux/arm64.",
            "type": "string"
          },
          "python": {
            "description": "Python is the interpreter version the steps use; detected from the base when unset.",
            "type": "string"
          },
          "steps": {
            "description": "Steps run in order on the base (at most 128).",
            "items": {
              "$ref": "#/components/schemas/ImageStep"
            },
            "nullable": true,
            "type": "array"
          },
          "tags": {
            "description": "Tags this build publishes.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "ImageStatus": {
        "additionalProperties": false,
        "description": "ImageStatus is the pinned image.",
        "properties": {
          "digest": {
            "description": "Digest is the pinned digest.",
            "type": "string"
          },
          "reference": {
            "description": "Reference is the image as written.",
            "type": "string"
          },
          "user": {
            "description": "User is the user the image's config runs its process as (root when it names none). Only an image that runs as root is placed on offerings that start the Nodus node agent inside the image itself.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ImageStep": {
        "additionalProperties": false,
        "description": "ImageStep is exactly one build step.",
        "properties": {
          "aptInstall": {
            "description": "AptInstall installs Debian packages.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "copy": {
            "$ref": "#/components/schemas/ImageCopy"
          },
          "env": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Env sets environment variables.",
            "type": "object"
          },
          "pipInstall": {
            "$ref": "#/components/schemas/PipInstall"
          },
          "run": {
            "description": "Run runs shell commands, one layer for all of them.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "uvPipInstall": {
            "$ref": "#/components/schemas/PipInstall"
          },
          "uvSync": {
            "$ref": "#/components/schemas/UVSync"
          },
          "workdir": {
            "description": "Workdir sets the working directory.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "InferenceEndpoint": {
        "additionalProperties": false,
        "description": "InferenceEndpoint is a named access policy over one catalog model, with its own base URL `/endpoints/\u003cproject\u003e/\u003cname\u003e/v1` on the inference host. Requests through it, or with `model: \"endpoint/\u003cname\u003e\"` on the shared base URL, are attributed to its project, limited by spec.limits, accepted only from spec.allowedKeys and billed to it, so spec.maxCostUSD caps what it spends. It runs no compute: a stopped endpoint answers 503.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/InferenceEndpointSpec"
          },
          "status": {
            "$ref": "#/components/schemas/InferenceEndpointStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "InferenceEndpoint",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": [
            "Running",
            "Stopped"
          ],
          "Tools": null
        }
      },
      "InferenceEndpointLimits": {
        "additionalProperties": false,
        "description": "InferenceEndpointLimits is spec.limits.",
        "properties": {
          "maxConcurrent": {
            "description": "MaxConcurrent is how many requests may be open at once, 1 to 256 (default 4).",
            "format": "int64",
            "type": "integer"
          },
          "rpm": {
            "description": "RPM is the requests per minute, 1 to 100,000 (default 60).",
            "format": "int64",
            "type": "integer"
          },
          "tpm": {
            "description": "TPM is the tokens per minute, at least 1; unset is unlimited.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "InferenceEndpointList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/InferenceEndpoint"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "InferenceEndpointSpec": {
        "additionalProperties": false,
        "description": "InferenceEndpointSpec describes an InferenceEndpoint. Every field but deployment can change after create, and maxCostUSD can only be raised.",
        "properties": {
          "allowedKeys": {
            "description": "AllowedKeys are the names of the API keys that may call the endpoint; empty allows every key of the org with the inference:invoke scope.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "deployment": {
            "description": "Deployment is reserved for self-hosted models and must be empty.",
            "type": "string"
          },
          "limits": {
            "$ref": "#/components/schemas/InferenceEndpointLimits"
          },
          "maxCostUSD": {
            "description": "MaxCostUSD caps what requests through the endpoint spend in total; once reached, new requests get 402 BudgetExceeded. It can only be raised.",
            "type": "string"
          },
          "model": {
            "description": "Model is the catalog model the endpoint serves: its name, `nodus/\u003cname\u003e` or an alias, as `GET /v1/models` lists them.",
            "type": "string"
          },
          "state": {
            "description": "State is the desired state: Running (the default) or Stopped, which answers every request with 503.",
            "type": "string"
          }
        },
        "required": [
          "model"
        ],
        "type": "object"
      },
      "InferenceEndpointStatus": {
        "additionalProperties": false,
        "description": "InferenceEndpointStatus is what Nodus observed about an InferenceEndpoint.",
        "properties": {
          "conditions": {
            "description": "Conditions are Ready and ModelAvailable.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "message": {
            "description": "Message explains the phase in a sentence.",
            "type": "string"
          },
          "model": {
            "description": "Model is the catalog name spec.model resolves to.",
            "type": "string"
          },
          "observedGeneration": {
            "description": "ObservedGeneration is the spec generation this status reflects.",
            "format": "int64",
            "type": "integer"
          },
          "phase": {
            "description": "Phase is Running or Stopped, from the long-running vocabulary.",
            "type": "string"
          },
          "reason": {
            "description": "Reason is the machine-readable reason for the phase.",
            "type": "string"
          },
          "usage24h": {
            "$ref": "#/components/schemas/InferenceEndpointUsage"
          }
        },
        "type": "object"
      },
      "InferenceEndpointUsage": {
        "additionalProperties": false,
        "description": "InferenceEndpointUsage is the requests through an endpoint over a window.",
        "properties": {
          "costUSD": {
            "description": "CostUSD is what the requests were charged.",
            "type": "string"
          },
          "errors": {
            "description": "Errors counts the requests that ended with no charge.",
            "format": "int64",
            "type": "integer"
          },
          "inputTokens": {
            "description": "InputTokens are the input tokens charged.",
            "format": "int64",
            "type": "integer"
          },
          "openHolds": {
            "description": "OpenHolds counts the requests still running, each holding its maximum cost.",
            "format": "int64",
            "type": "integer"
          },
          "outputTokens": {
            "description": "OutputTokens are the output tokens charged, reasoning included.",
            "format": "int64",
            "type": "integer"
          },
          "requests": {
            "description": "Requests counts every request, answered or not.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "requests",
          "errors",
          "inputTokens",
          "outputTokens",
          "costUSD",
          "openHolds"
        ],
        "type": "object"
      },
      "InitCommand": {
        "additionalProperties": false,
        "description": "InitCommand is a preflight run before the command.",
        "properties": {
          "command": {
            "description": "Command is the argv.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "timeout": {
            "description": "Timeout is at most 30m.",
            "type": "string"
          }
        },
        "required": [
          "command"
        ],
        "type": "object"
      },
      "InputStatus": {
        "additionalProperties": false,
        "description": "InputStatus is a pinned input.",
        "properties": {
          "name": {
            "description": "Name is the input.",
            "type": "string"
          },
          "sha256": {
            "description": "SHA256 is the verified digest.",
            "type": "string"
          },
          "volumeRevision": {
            "description": "VolumeRevision is the pinned Volume revision.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "Job": {
        "additionalProperties": false,
        "description": "Job is a run-to-completion container with checkpoints, recovery from preemption, Indexed completions, multi-node gangs (Beta), a cost estimate before launch and exact prepaid billing. Every index runs as Attempts.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/JobSpec"
          },
          "status": {
            "$ref": "#/components/schemas/JobStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Job",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "JobInput": {
        "additionalProperties": false,
        "description": "JobInput is one input: exactly one of volume, output, bucket, url and fromWorkspace. It is mounted at /nodus/inputs/\u003cname\u003e, with the path in NODUS_INPUT_\u003cNAME\u003e, and materialized inside the billed time.",
        "properties": {
          "bucket": {
            "$ref": "#/components/schemas/BucketInput"
          },
          "fromStage": {
            "$ref": "#/components/schemas/StageInput"
          },
          "fromWorkspace": {
            "$ref": "#/components/schemas/WorkspaceInput"
          },
          "name": {
            "description": "Name matches ^[A-Za-z][A-Za-z0-9_]{0,63}$ and is unique among inputs.",
            "type": "string"
          },
          "output": {
            "$ref": "#/components/schemas/OutputInput"
          },
          "url": {
            "$ref": "#/components/schemas/URLInput"
          },
          "volume": {
            "$ref": "#/components/schemas/VolumeInput"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "JobList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Job"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "JobOutput": {
        "additionalProperties": false,
        "description": "JobOutput is a declared output.",
        "properties": {
          "fromRanks": {
            "description": "FromRanks is Zero (rank 0 only) or All (every rank under rank-\u003cn\u003e/) for gang Jobs.",
            "type": "string"
          },
          "name": {
            "description": "Name matches ^[a-z0-9._-]{1,64}$; the nodus. prefix is reserved.",
            "type": "string"
          },
          "path": {
            "description": "Path is an absolute file or directory path; directories are archived as tar.zst.",
            "type": "string"
          },
          "sink": {
            "$ref": "#/components/schemas/OutputSink"
          }
        },
        "required": [
          "name",
          "path"
        ],
        "type": "object"
      },
      "JobPlacement": {
        "additionalProperties": false,
        "description": "JobPlacement is where the current attempt runs, in customer terms.",
        "properties": {
          "interruptible": {
            "description": "Interruptible is true on reclaimable capacity.",
            "type": "boolean"
          },
          "offering": {
            "description": "Offering is the offering key, for example h100-sxm-80g-x1-us.",
            "type": "string"
          },
          "rateUSDPerHour": {
            "description": "RateUSDPerHour is the frozen customer rate.",
            "type": "string"
          },
          "regionClass": {
            "description": "RegionClass is the region class.",
            "type": "string"
          },
          "warmReuse": {
            "description": "WarmReuse is true when warm capacity was reused.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "JobSpec": {
        "additionalProperties": false,
        "description": "JobSpec describes a Job. Everything is immutable after create except parallelism, backoffLimit, timeout, maxCostUSD (raise only), recovery.maxAttempts, recovery.checkpoint.interval and retainAfterFinish, ttlSecondsAfterFinished and state.",
        "properties": {
          "activeDeadlineSeconds": {
            "description": "ActiveDeadlineSeconds is accepted as an alias of timeout on write and folded into it.",
            "format": "int64",
            "type": "integer"
          },
          "args": {
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "backoffLimit": {
            "description": "BackoffLimit is how many customer failures (non-zero exits, OOM) across all indexes are retried before the Job fails (0–100).",
            "format": "int32",
            "type": "integer"
          },
          "command": {
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "completeByTime": {
            "description": "CompleteByTime is a finish-by hint for placement and checkpoint cadence. It never stops the Job.",
            "type": "string"
          },
          "completions": {
            "description": "Completions is how many indexes must succeed (1–10000). Each index gets NODUS_INDEX and JOB_COMPLETION_INDEX.",
            "format": "int32",
            "type": "integer"
          },
          "connections": {
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "distributed": {
            "$ref": "#/components/schemas/Distributed"
          },
          "env": {
            "items": {
              "$ref": "#/components/schemas/EnvVar"
            },
            "nullable": true,
            "type": "array"
          },
          "expectedDuration": {
            "description": "ExpectedDuration is the declared runtime the estimate uses first.",
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "imagePullSecrets": {
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "imageRef": {
            "type": "string"
          },
          "initCommand": {
            "$ref": "#/components/schemas/InitCommand"
          },
          "inputs": {
            "description": "Inputs are materialized read-only under /nodus/inputs/\u003cname\u003e before the command starts (at most 8).",
            "items": {
              "$ref": "#/components/schemas/JobInput"
            },
            "nullable": true,
            "type": "array"
          },
          "maxCostUSD": {
            "description": "MaxCostUSD caps what the Job may spend. Reaching it suspends the Job; it can only be raised.",
            "type": "string"
          },
          "network": {
            "$ref": "#/components/schemas/Network"
          },
          "outputs": {
            "description": "Outputs are files or directories collected when an index succeeds (at most 32). Everything under /nodus/outputs is also collected as the output named \"outputs\".",
            "items": {
              "$ref": "#/components/schemas/JobOutput"
            },
            "nullable": true,
            "type": "array"
          },
          "parallelism": {
            "description": "Parallelism is how many indexes run at once (1 to min(completions, 256)).",
            "format": "int32",
            "type": "integer"
          },
          "placement": {
            "$ref": "#/components/schemas/Placement"
          },
          "recovery": {
            "$ref": "#/components/schemas/Recovery"
          },
          "resources": {
            "$ref": "#/components/schemas/Resources"
          },
          "scaledownWindow": {
            "description": "ScaledownWindow keeps the capacity warm for reuse this long after the Job ends (0s–20m).",
            "type": "string"
          },
          "secrets": {
            "items": {
              "$ref": "#/components/schemas/SecretMount"
            },
            "nullable": true,
            "type": "array"
          },
          "serviceAccountName": {
            "type": "string"
          },
          "sidecars": {
            "items": {
              "$ref": "#/components/schemas/Sidecar"
            },
            "nullable": true,
            "type": "array"
          },
          "source": {
            "$ref": "#/components/schemas/Source"
          },
          "state": {
            "description": "State is the desired state: Running (the default), Suspended, or the cancel state that stops the Job for good.",
            "type": "string"
          },
          "timeout": {
            "description": "Timeout is the wall-clock limit counted from the first Provisioning, excluding time spent Suspended. The Job then fails with DeadlineExceeded.",
            "type": "string"
          },
          "ttlSecondsAfterFinished": {
            "description": "TTLSecondsAfterFinished deletes the Job, its outputs and checkpoints this long after it finishes.",
            "format": "int32",
            "type": "integer"
          },
          "volumes": {
            "items": {
              "$ref": "#/components/schemas/VolumeMount"
            },
            "nullable": true,
            "type": "array"
          },
          "workingDir": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "JobStatus": {
        "additionalProperties": false,
        "description": "JobStatus is what Nodus observed about a Job.",
        "properties": {
          "active": {
            "description": "Active is the number of indexes with a live attempt.",
            "format": "int32",
            "type": "integer"
          },
          "attempts": {
            "$ref": "#/components/schemas/AttemptCounts"
          },
          "checkpoint": {
            "$ref": "#/components/schemas/CheckpointStatus"
          },
          "completedIndexes": {
            "description": "CompletedIndexes lists the succeeded indexes as compressed ranges, for example 0-3,5.",
            "type": "string"
          },
          "completionTime": {
            "description": "CompletionTime is when the Job reached a terminal phase.",
            "type": "string"
          },
          "conditions": {
            "description": "Conditions are the latest observations.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "cost": {
            "$ref": "#/components/schemas/Cost"
          },
          "estimate": {
            "$ref": "#/components/schemas/Estimate"
          },
          "failed": {
            "description": "Failed is the number of customer failures (non-zero exits, OOM) across all indexes.",
            "format": "int32",
            "type": "integer"
          },
          "fix": {
            "description": "Fix is the reason's documented fix.",
            "type": "string"
          },
          "gang": {
            "$ref": "#/components/schemas/GangStatus"
          },
          "handledRequests": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "HandledRequests records the last handled *-requested-at annotation per action.",
            "type": "object"
          },
          "image": {
            "$ref": "#/components/schemas/ImageStatus"
          },
          "inputs": {
            "description": "Inputs are the pinned inputs.",
            "items": {
              "$ref": "#/components/schemas/InputStatus"
            },
            "nullable": true,
            "type": "array"
          },
          "inputsReadyTime": {
            "description": "InputsReadyTime is when declared inputs finished materializing.",
            "type": "string"
          },
          "links": {
            "description": "Links are related pages, for example W\u0026B runs.",
            "items": {
              "$ref": "#/components/schemas/Link"
            },
            "nullable": true,
            "type": "array"
          },
          "message": {
            "description": "Message is a scrubbed explanation (at most three log lines for a customer exit).",
            "type": "string"
          },
          "observedGeneration": {
            "description": "ObservedGeneration is the spec generation the status reflects.",
            "format": "int64",
            "type": "integer"
          },
          "outputs": {
            "description": "Outputs are the committed outputs.",
            "items": {
              "$ref": "#/components/schemas/OutputStatus"
            },
            "nullable": true,
            "type": "array"
          },
          "phase": {
            "description": "Phase is the run-to-completion phase.",
            "type": "string"
          },
          "placement": {
            "$ref": "#/components/schemas/JobPlacement"
          },
          "progress": {
            "$ref": "#/components/schemas/Progress"
          },
          "reason": {
            "description": "Reason says why the Job failed, stopped for good or is suspended.",
            "type": "string"
          },
          "secretVersionIDs": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "SecretVersionIDs identify the pinned versions, which every attempt receives: a Secret deleted and recreated under the same name is a different Secret.",
            "type": "object"
          },
          "secretVersions": {
            "additionalProperties": {
              "format": "int32",
              "type": "integer"
            },
            "description": "SecretVersions are pinned at admission; replacements reuse them.",
            "type": "object"
          },
          "source": {
            "$ref": "#/components/schemas/SourceStatus"
          },
          "startTime": {
            "description": "StartTime is the first Running.",
            "type": "string"
          },
          "stopByTime": {
            "description": "StopByTime is the funded edge while Funded is False: a money-driven suspend checkpoints until then and stops without the checkpoint once it passes (ADR-086).",
            "type": "string"
          },
          "storage": {
            "$ref": "#/components/schemas/StorageStatus"
          },
          "succeeded": {
            "description": "Succeeded is the number of indexes that succeeded.",
            "format": "int32",
            "type": "integer"
          },
          "suspendFailures": {
            "description": "SuspendFailures counts the failed checkpoints of the current customer suspend. After the first try and two retries the Job keeps running with SuspendFailed; the count resets when spec.state leaves Suspended.",
            "format": "int32",
            "type": "integer"
          },
          "suspendedDuration": {
            "description": "SuspendedDuration is the time spent Suspended since timeoutStartTime; spec.timeout does not count it.",
            "type": "string"
          },
          "timeoutStartTime": {
            "description": "TimeoutStartTime is the first Provisioning, where the spec.timeout clock starts.",
            "type": "string"
          },
          "timeoutTime": {
            "description": "TimeoutTime is when spec.timeout fires: timeoutStartTime plus the current spec.timeout plus suspendedDuration, so an edit to spec.timeout moves it.",
            "type": "string"
          },
          "topology": {
            "$ref": "#/components/schemas/Topology"
          },
          "unitMetrics": {
            "$ref": "#/components/schemas/UnitMetrics"
          }
        },
        "type": "object"
      },
      "LabelSelector": {
        "additionalProperties": false,
        "properties": {
          "matchExpressions": {
            "items": {
              "$ref": "#/components/schemas/LabelSelectorRequirement"
            },
            "nullable": true,
            "type": "array"
          },
          "matchLabels": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "LabelSelectorRequirement": {
        "additionalProperties": false,
        "properties": {
          "key": {
            "type": "string"
          },
          "operator": {
            "type": "string"
          },
          "values": {
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "required": [
          "key",
          "operator"
        ],
        "type": "object"
      },
      "Link": {
        "additionalProperties": false,
        "description": "Link is a related page.",
        "properties": {
          "kind": {
            "description": "Kind names the link, for example wandb.",
            "type": "string"
          },
          "url": {
            "description": "URL is the page.",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "url"
        ],
        "type": "object"
      },
      "ListMeta": {
        "additionalProperties": false,
        "properties": {
          "continue": {
            "type": "string"
          },
          "remainingItemCount": {
            "format": "int64",
            "type": "integer"
          },
          "resourceVersion": {
            "type": "string"
          },
          "selfLink": {
            "type": "string"
          },
          "shardInfo": {
            "$ref": "#/components/schemas/ShardInfo"
          }
        },
        "type": "object"
      },
      "ManagedFieldsEntry": {
        "additionalProperties": false,
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "fieldsType": {
            "type": "string"
          },
          "fieldsV1": {
            "additionalProperties": {},
            "type": "object"
          },
          "manager": {
            "type": "string"
          },
          "operation": {
            "type": "string"
          },
          "subresource": {
            "type": "string"
          },
          "time": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Model": {
        "additionalProperties": false,
        "description": "Model is a model callable through the inference data plane, published read-only in the catalog project nodus. Pass spec.id (or an alias) as the model of a request; the rates are what a request is quoted at now.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/ModelSpec"
          },
          "status": {
            "$ref": "#/components/schemas/ModelStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Model",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "ModelCapabilities": {
        "additionalProperties": false,
        "description": "ModelCapabilities are the request features a Model supports.",
        "properties": {
          "jsonSchema": {
            "description": "JSONSchema is true when the model follows a response JSON schema.",
            "type": "boolean"
          },
          "promptCaching": {
            "description": "PromptCaching is true when repeated prompt prefixes bill at the cache-read rate.",
            "type": "boolean"
          },
          "reasoning": {
            "description": "Reasoning is true when the model reasons before it answers.",
            "type": "boolean"
          },
          "streaming": {
            "description": "Streaming is true when responses stream as server-sent events.",
            "type": "boolean"
          },
          "tools": {
            "description": "Tools is true when the model calls tools.",
            "type": "boolean"
          }
        },
        "required": [
          "streaming",
          "tools",
          "jsonSchema",
          "reasoning",
          "promptCaching"
        ],
        "type": "object"
      },
      "ModelList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Model"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "ModelModalities": {
        "additionalProperties": false,
        "description": "ModelModalities lists a Model's input and output modalities: Text, Image, Audio or Embedding.",
        "properties": {
          "input": {
            "description": "Input are the modalities the model reads.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "output": {
            "description": "Output are the modalities the model writes.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "ModelPricing": {
        "additionalProperties": false,
        "description": "ModelPricing is a Model's customer rates as decimal USD strings; a unit the model does not bill is absent.",
        "properties": {
          "audioMinimumSeconds": {
            "description": "AudioMinimumSeconds is the least audio one transcription or translation request is billed for.",
            "format": "int64",
            "type": "integer"
          },
          "audioPerSecondUSD": {
            "description": "AudioPerSecondUSD is the rate of a second of transcribed or translated audio.",
            "type": "string"
          },
          "cacheReadPerMillionTokensUSD": {
            "description": "CacheReadPerMillionTokensUSD is the rate of a million input tokens read from the prompt cache.",
            "type": "string"
          },
          "cacheWritePerMillionTokensUSD": {
            "description": "CacheWritePerMillionTokensUSD is the rate of a million input tokens written to the prompt cache.",
            "type": "string"
          },
          "inputPerMillionTokensUSD": {
            "description": "InputPerMillionTokensUSD is the rate of a million input tokens.",
            "type": "string"
          },
          "outputPerMillionTokensUSD": {
            "description": "OutputPerMillionTokensUSD is the rate of a million output tokens.",
            "type": "string"
          },
          "pricebookVersion": {
            "description": "PricebookVersion is the pricing version the rates come from, which receipts record.",
            "type": "string"
          },
          "speechPerMillionCharactersUSD": {
            "description": "SpeechPerMillionCharactersUSD is the rate of a million characters of generated speech.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ModelSpec": {
        "additionalProperties": false,
        "description": "ModelSpec is what the catalog declares about a Model.",
        "properties": {
          "aliases": {
            "description": "Aliases are other ids that name the same model.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "capabilities": {
            "$ref": "#/components/schemas/ModelCapabilities"
          },
          "contextTokens": {
            "description": "ContextTokens is the context window in tokens.",
            "format": "int64",
            "type": "integer"
          },
          "deprecationTime": {
            "description": "DeprecationTime is when the model stops serving, once announced.",
            "type": "string"
          },
          "description": {
            "description": "Description says what the model is for.",
            "type": "string"
          },
          "displayName": {
            "description": "DisplayName is the model's human-readable name.",
            "type": "string"
          },
          "family": {
            "description": "Family groups related models, such as gpt-oss.",
            "type": "string"
          },
          "id": {
            "description": "ID is the model id a request names, such as openai/gpt-oss-120b.",
            "type": "string"
          },
          "imageTokenAllowance": {
            "description": "ImageTokenAllowance is the input tokens held for each inline image.",
            "format": "int64",
            "type": "integer"
          },
          "maxOutputTokens": {
            "description": "MaxOutputTokens is the most tokens one response generates.",
            "format": "int64",
            "type": "integer"
          },
          "modalities": {
            "$ref": "#/components/schemas/ModelModalities"
          },
          "operations": {
            "description": "Operations are the inference routes the model serves.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "preview": {
            "description": "Preview marks a model that may change or leave the catalog without notice.",
            "type": "boolean"
          },
          "pricing": {
            "$ref": "#/components/schemas/ModelPricing"
          }
        },
        "required": [
          "id",
          "capabilities"
        ],
        "type": "object"
      },
      "ModelStatus": {
        "additionalProperties": false,
        "description": "ModelStatus is whether a Model serves requests now.",
        "properties": {
          "available": {
            "description": "Available mirrors the Available condition.",
            "type": "boolean"
          },
          "conditions": {
            "description": "Conditions carry Ready and Available; both are False with reason UpstreamUnavailable while no route serves the model, and Unknown in a process that does not serve inference.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "phase": {
            "description": "Phase is Ready while requests for the model are served, else Pending.",
            "type": "string"
          }
        },
        "required": [
          "available"
        ],
        "type": "object"
      },
      "NeonConnection": {
        "additionalProperties": false,
        "description": "NeonConnection selects a Neon branch.",
        "properties": {
          "branch": {
            "description": "Branch is the Neon branch; empty is the project's default branch.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Network": {
        "additionalProperties": false,
        "description": "Network sets egress for the container.",
        "properties": {
          "egress": {
            "$ref": "#/components/schemas/Egress"
          }
        },
        "type": "object"
      },
      "Node": {
        "additionalProperties": false,
        "description": "Node is a customer host enrolled into a Pool with an EnrollmentToken. It is read-only except for metadata.labels and the nodus.dev/drain-requested-at annotation; DELETE unenrolls the host.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "status": {
            "$ref": "#/components/schemas/NodeStatus"
          }
        },
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Node",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "NodeAllocatable": {
        "additionalProperties": false,
        "description": "NodeAllocatable is the placeable share of the host.",
        "properties": {
          "cpu": {
            "description": "CPU is the free CPU count.",
            "format": "int32",
            "type": "integer"
          },
          "gpus": {
            "additionalProperties": {
              "format": "int32",
              "type": "integer"
            },
            "description": "GPUs counts free GPUs per accelerator model.",
            "type": "object"
          },
          "memoryMiB": {
            "description": "MemoryMiB is the free memory in MiB.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "cpu",
          "memoryMiB"
        ],
        "type": "object"
      },
      "NodeGPU": {
        "additionalProperties": false,
        "description": "NodeGPU is one device on the host.",
        "properties": {
          "driver": {
            "description": "Driver is the GPU driver version.",
            "type": "string"
          },
          "memoryMiB": {
            "description": "MemoryMiB is the GPU's memory in MiB.",
            "format": "int64",
            "type": "integer"
          },
          "type": {
            "description": "accelerator model, \"h100-sxm-80g\"",
            "type": "string"
          }
        },
        "required": [
          "type",
          "memoryMiB"
        ],
        "type": "object"
      },
      "NodeInventory": {
        "additionalProperties": false,
        "description": "NodeInventory is the host's hardware and software.",
        "properties": {
          "cpu": {
            "description": "CPU is the host's CPU count.",
            "format": "int32",
            "type": "integer"
          },
          "diskGiB": {
            "description": "DiskGiB is the host's free disk in GiB.",
            "format": "int64",
            "type": "integer"
          },
          "gpus": {
            "description": "GPUs are the host's GPUs.",
            "items": {
              "$ref": "#/components/schemas/NodeGPU"
            },
            "nullable": true,
            "type": "array"
          },
          "memoryMiB": {
            "description": "MemoryMiB is the host's memory in MiB.",
            "format": "int64",
            "type": "integer"
          },
          "nodusdVersion": {
            "description": "NodusdVersion is the nodusd release on the host.",
            "type": "string"
          },
          "os": {
            "description": "OS is the host's operating system.",
            "type": "string"
          }
        },
        "required": [
          "cpu",
          "memoryMiB",
          "diskGiB"
        ],
        "type": "object"
      },
      "NodeList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Node"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "NodeStatus": {
        "additionalProperties": false,
        "description": "NodeStatus is what nodusd reports about the host.",
        "properties": {
          "allocatable": {
            "$ref": "#/components/schemas/NodeAllocatable"
          },
          "cloudAccount": {
            "description": "CloudAccount is the CloudAccount the host was observed in, when it was enrolled from one.",
            "type": "string"
          },
          "conditions": {
            "description": "Conditions carries Ready.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "drainedTime": {
            "description": "DrainedTime is when the current drain began.",
            "type": "string"
          },
          "inventory": {
            "$ref": "#/components/schemas/NodeInventory"
          },
          "lastHeartbeatTime": {
            "description": "LastHeartbeatTime is nodusd's latest heartbeat.",
            "type": "string"
          },
          "pool": {
            "description": "Pool is the Pool the host belongs to.",
            "type": "string"
          },
          "running": {
            "description": "Running counts the Nodus-scheduled attempts on the host.",
            "format": "int32",
            "type": "integer"
          },
          "utilization": {
            "$ref": "#/components/schemas/NodeUtilization"
          }
        },
        "required": [
          "pool",
          "running"
        ],
        "type": "object"
      },
      "NodeUtilization": {
        "additionalProperties": false,
        "description": "NodeUtilization is the host's latest utilization.",
        "properties": {
          "gpuPercent": {
            "description": "GPUPercent is the GPU busy share, in percent.",
            "format": "int32",
            "type": "integer"
          },
          "memoryPercent": {
            "description": "MemoryPercent is the memory in use, in percent.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "gpuPercent",
          "memoryPercent"
        ],
        "type": "object"
      },
      "ObjectMeta": {
        "additionalProperties": false,
        "properties": {
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "creationTimestamp": {
            "type": "string"
          },
          "deletionGracePeriodSeconds": {
            "format": "int64",
            "type": "integer"
          },
          "deletionTimestamp": {
            "type": "string"
          },
          "finalizers": {
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "generateName": {
            "type": "string"
          },
          "generation": {
            "format": "int64",
            "type": "integer"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "managedFields": {
            "items": {
              "$ref": "#/components/schemas/ManagedFieldsEntry"
            },
            "nullable": true,
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "namespace": {
            "type": "string"
          },
          "ownerReferences": {
            "items": {
              "$ref": "#/components/schemas/OwnerReference"
            },
            "nullable": true,
            "type": "array"
          },
          "resourceVersion": {
            "type": "string"
          },
          "selfLink": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Offering": {
        "additionalProperties": false,
        "description": "Offering is a class of capacity Nodus can run work on now: an accelerator and count (or a CPU shape), a region class and interruptible or on-demand, with live customer prices and availability. Offerings are read-only and the same for every organization; name one in spec.placement.offerings to restrict where work runs.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/OfferingSpec"
          },
          "status": {
            "$ref": "#/components/schemas/OfferingStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Offering",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "OfferingAccelerator": {
        "additionalProperties": false,
        "description": "OfferingAccelerator is an accelerator from the Nodus accelerator catalog.",
        "properties": {
          "arch": {
            "description": "Arch is the CUDA architecture, such as sm_90.",
            "type": "string"
          },
          "family": {
            "description": "Family is the accelerator family, such as H100, that spec.resources.gpu.type matches.",
            "type": "string"
          },
          "formFactor": {
            "description": "FormFactor is the board form factor, such as SXM or PCIe.",
            "type": "string"
          },
          "id": {
            "description": "ID is the exact accelerator variant, such as H100-SXM.",
            "type": "string"
          },
          "memory": {
            "description": "Memory is the memory of one accelerator, such as 80Gi.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "family",
          "memory"
        ],
        "type": "object"
      },
      "OfferingHost": {
        "additionalProperties": false,
        "description": "OfferingHost is the CPU, memory and disk of a machine.",
        "properties": {
          "cpu": {
            "description": "CPU is the vCPUs.",
            "type": "string"
          },
          "disk": {
            "description": "Disk is the ephemeral disk, when the class reports one.",
            "type": "string"
          },
          "memory": {
            "description": "Memory is the host memory.",
            "type": "string"
          }
        },
        "required": [
          "cpu",
          "memory"
        ],
        "type": "object"
      },
      "OfferingList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Offering"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "OfferingPrice": {
        "additionalProperties": false,
        "description": "OfferingPrice is a customer rate range.",
        "properties": {
          "from": {
            "description": "From is the rate of the cheapest machine free now, which the default placement profile takes, or of the cheapest machine when none is free, such as \"2.85\".",
            "type": "string"
          },
          "typical": {
            "description": "Typical is the median current rate of the machines free now, or of every machine when none is free.",
            "type": "string"
          }
        },
        "required": [
          "from"
        ],
        "type": "object"
      },
      "OfferingSpec": {
        "additionalProperties": false,
        "description": "OfferingSpec is the shape of a capacity class.",
        "properties": {
          "accelerator": {
            "$ref": "#/components/schemas/OfferingAccelerator"
          },
          "category": {
            "description": "Category is GPU or CPU.",
            "type": "string"
          },
          "count": {
            "description": "Count is the accelerators per machine; 0 for CPU offerings.",
            "format": "int32",
            "type": "integer"
          },
          "host": {
            "$ref": "#/components/schemas/OfferingHost"
          },
          "interconnect": {
            "description": "Interconnect is the accelerator interconnect, such as NVLink, when it is verified.",
            "type": "string"
          },
          "interruptible": {
            "description": "Interruptible capacity can be reclaimed while running and costs less; Nodus checkpoints and resumes work on it.",
            "type": "boolean"
          },
          "multiNode": {
            "description": "MultiNode reports that machines of this class can run multi-node (gang) Jobs together.",
            "type": "boolean"
          },
          "regionClass": {
            "description": "RegionClass is where the machines are, such as us or eu; unknown when the location is not reported.",
            "type": "string"
          },
          "supports": {
            "$ref": "#/components/schemas/OfferingSupports"
          }
        },
        "required": [
          "category",
          "count",
          "regionClass",
          "interruptible",
          "host",
          "multiNode",
          "supports"
        ],
        "type": "object"
      },
      "OfferingStartup": {
        "additionalProperties": false,
        "description": "OfferingStartup is the observed time from request to a running machine.",
        "properties": {
          "p50": {
            "description": "P50 is the median startup time.",
            "type": "string"
          },
          "p90": {
            "description": "P90 is the 90th-percentile startup time.",
            "type": "string"
          }
        },
        "required": [
          "p50",
          "p90"
        ],
        "type": "object"
      },
      "OfferingStatus": {
        "additionalProperties": false,
        "description": "OfferingStatus is the live price and availability of a capacity class.",
        "properties": {
          "availability": {
            "description": "Availability is Available, Limited or Unavailable.",
            "type": "string"
          },
          "availableNow": {
            "description": "AvailableNow is a lower bound of the machines free now.",
            "format": "int32",
            "type": "integer"
          },
          "conditions": {
            "description": "Conditions carry Available, False with reason NoCapacity when no machine is free.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "interruptionRatePerHour": {
            "description": "InterruptionRatePerHour is the observed reclaims per machine-hour; set for interruptible offerings only.",
            "type": "string"
          },
          "listPriceUSDPerHour": {
            "description": "ListPriceUSDPerHour is the published list price per machine-hour.",
            "type": "string"
          },
          "observedTime": {
            "description": "ObservedTime is when the price and availability were last confirmed.",
            "type": "string"
          },
          "priceUSDPerHour": {
            "$ref": "#/components/schemas/OfferingPrice"
          },
          "startup": {
            "$ref": "#/components/schemas/OfferingStartup"
          }
        },
        "required": [
          "priceUSDPerHour",
          "availability",
          "availableNow"
        ],
        "type": "object"
      },
      "OfferingSupports": {
        "additionalProperties": false,
        "description": "OfferingSupports are the kinds of work an Offering can run.",
        "properties": {
          "gangs": {
            "description": "Gangs (multi-node Jobs) can run on this class.",
            "type": "boolean"
          },
          "jobs": {
            "description": "Jobs can run on this class.",
            "type": "boolean"
          },
          "restrictedEgress": {
            "description": "RestrictedEgress reports that outbound network restrictions are enforced on this class.",
            "type": "boolean"
          },
          "sandboxes": {
            "description": "Sandboxes can run on this class.",
            "type": "boolean"
          },
          "workspaces": {
            "description": "Workspaces can run on this class.",
            "type": "boolean"
          }
        },
        "required": [
          "jobs",
          "sandboxes",
          "workspaces",
          "gangs",
          "restrictedEgress"
        ],
        "type": "object"
      },
      "OutputInput": {
        "additionalProperties": false,
        "description": "OutputInput names a committed output of another Job.",
        "properties": {
          "index": {
            "description": "Index selects an index of an Indexed Job (default 0).",
            "format": "int32",
            "type": "integer"
          },
          "job": {
            "description": "Job is the producing Job.",
            "type": "string"
          },
          "name": {
            "description": "Name is the output.",
            "type": "string"
          }
        },
        "required": [
          "job",
          "name"
        ],
        "type": "object"
      },
      "OutputSink": {
        "additionalProperties": false,
        "description": "OutputSink loads an output into a customer database table.",
        "properties": {
          "connection": {
            "description": "Connection is a Postgres, Neon or Supabase Connection.",
            "type": "string"
          },
          "mode": {
            "description": "Mode is Append (default) or Replace.",
            "type": "string"
          },
          "table": {
            "description": "Table is the destination table.",
            "type": "string"
          }
        },
        "required": [
          "connection",
          "table"
        ],
        "type": "object"
      },
      "OutputStatus": {
        "additionalProperties": false,
        "description": "OutputStatus is a committed output.",
        "properties": {
          "index": {
            "description": "Index is the Job index that produced it.",
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "description": "Name is the declared output.",
            "type": "string"
          },
          "path": {
            "description": "Path is where it was collected from.",
            "type": "string"
          },
          "rank": {
            "description": "Rank is the gang rank that produced it (fromRanks All).",
            "format": "int32",
            "type": "integer"
          },
          "sha256": {
            "description": "SHA256 is the content digest.",
            "type": "string"
          },
          "sink": {
            "$ref": "#/components/schemas/SinkStatus"
          },
          "size": {
            "description": "Size is the size in bytes.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "name",
          "path",
          "sha256",
          "size"
        ],
        "type": "object"
      },
      "OwnerReference": {
        "additionalProperties": false,
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "blockOwnerDeletion": {
            "type": "boolean"
          },
          "controller": {
            "type": "boolean"
          },
          "kind": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        },
        "required": [
          "apiVersion",
          "kind",
          "name",
          "uid"
        ],
        "type": "object"
      },
      "Payload": {
        "additionalProperties": false,
        "description": "Payload is an argument or a result: inline bytes of at most 64 KiB, or a content-addressed blob.",
        "properties": {
          "blob": {
            "description": "Blob is the sha256:\u003chex\u003e reference of a payload above 64 KiB, uploaded through /blobs/v1.",
            "type": "string"
          },
          "encoding": {
            "description": "Encoding is Pickle (cloudpickle, the SDK) or JSON.",
            "type": "string"
          },
          "inline": {
            "description": "Inline is the payload, base64 on the wire, at most 64 KiB. Exactly one of inline and blob.",
            "format": "base64",
            "type": "string"
          },
          "sha256": {
            "description": "SHA256 is the hex digest of the payload, set on results.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PipInstall": {
        "additionalProperties": false,
        "description": "PipInstall lists packages and optional indexes.",
        "properties": {
          "extraIndexURLs": {
            "description": "ExtraIndexURLs are searched after the index.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "indexURL": {
            "description": "IndexURL replaces the default index.",
            "type": "string"
          },
          "packages": {
            "description": "Packages are requirement specifiers.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "required": [
          "packages"
        ],
        "type": "object"
      },
      "PipPackage": {
        "additionalProperties": false,
        "description": "PipPackage names a pip package.",
        "properties": {
          "index": {
            "description": "Index is an optional package index URL.",
            "type": "string"
          },
          "name": {
            "description": "Name is the distribution name.",
            "type": "string"
          },
          "version": {
            "description": "Version is the exact version.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "version"
        ],
        "type": "object"
      },
      "Pipeline": {
        "additionalProperties": false,
        "description": "Pipeline is a DAG of Jobs. Independent ready stages run in parallel, and a stage reads the outputs of the stages it depends on as inputs. Each stage runs as a Job named \u003cpipeline\u003e-\u003cstage\u003e, owned by the Pipeline.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/PipelineSpec"
          },
          "status": {
            "$ref": "#/components/schemas/PipelineStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Pipeline",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "PipelineList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Pipeline"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "PipelineSpec": {
        "additionalProperties": false,
        "description": "PipelineSpec describes a Pipeline. Everything is immutable after create except maxParallel, maxCostUSD (raise only), state and ttlSecondsAfterFinished.",
        "properties": {
          "defaults": {
            "$ref": "#/components/schemas/JobSpec"
          },
          "failurePolicy": {
            "description": "FailurePolicy says what happens when a stage fails: FailFast (the default) cancels the running stages; RunIndependent finishes every stage that does not depend on the failed one.",
            "type": "string"
          },
          "maxCostUSD": {
            "description": "MaxCostUSD is one cap shared by every stage Job, never split per stage. Reaching it suspends every running stage with MaxCostReached; raising it resumes them.",
            "type": "string"
          },
          "maxParallel": {
            "description": "MaxParallel is how many stage Jobs may run at once, 1 to 64; the default is the number of stages.",
            "format": "int32",
            "type": "integer"
          },
          "stages": {
            "description": "Stages are the Pipeline's steps, 1 to 64, forming an acyclic graph through dependsOn.",
            "items": {
              "$ref": "#/components/schemas/PipelineStage"
            },
            "nullable": true,
            "type": "array"
          },
          "state": {
            "description": "State is the desired state: Running (the default), Suspended, or the cancel state. It propagates to the stage Jobs.",
            "type": "string"
          },
          "ttlSecondsAfterFinished": {
            "description": "TTLSecondsAfterFinished deletes the Pipeline and its stage Jobs this long after it finishes.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "stages"
        ],
        "type": "object"
      },
      "PipelineStage": {
        "additionalProperties": false,
        "description": "PipelineStage is one step of a Pipeline.",
        "properties": {
          "dependsOn": {
            "description": "DependsOn names the stages that must succeed before this one starts.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "inputs": {
            "description": "Inputs are outputs of earlier stages, mounted read-only and named in NODUS_INPUT_\u003cNAME\u003e.",
            "items": {
              "$ref": "#/components/schemas/PipelineStageInput"
            },
            "nullable": true,
            "type": "array"
          },
          "name": {
            "description": "Name is a DNS label unique in the Pipeline; the stage Job is named \u003cpipeline\u003e-\u003cname\u003e.",
            "type": "string"
          },
          "template": {
            "$ref": "#/components/schemas/JobSpec"
          }
        },
        "required": [
          "name",
          "template"
        ],
        "type": "object"
      },
      "PipelineStageInput": {
        "additionalProperties": false,
        "description": "PipelineStageInput hands one output of an earlier stage to a stage.",
        "properties": {
          "fromStage": {
            "description": "FromStage is the producing stage; it must be listed in dependsOn.",
            "type": "string"
          },
          "name": {
            "description": "Name is the input's name in this stage.",
            "type": "string"
          },
          "output": {
            "description": "Output is the name of an output declared in that stage's template.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "fromStage",
          "output"
        ],
        "type": "object"
      },
      "PipelineStageStatus": {
        "additionalProperties": false,
        "description": "PipelineStageStatus is one stage as observed.",
        "properties": {
          "completionTime": {
            "description": "CompletionTime is when the stage Job finished.",
            "type": "string"
          },
          "costUSD": {
            "description": "CostUSD is what the stage Job has cost so far.",
            "type": "string"
          },
          "job": {
            "description": "Job is the stage Job's name.",
            "type": "string"
          },
          "name": {
            "description": "Name is the stage name.",
            "type": "string"
          },
          "phase": {
            "description": "Phase is the stage Job's phase; Pending before the Job exists, Skipped when a failure upstream means it will never run.",
            "type": "string"
          },
          "startTime": {
            "description": "StartTime is when the stage Job was created.",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "PipelineStatus": {
        "additionalProperties": false,
        "description": "PipelineStatus is what Nodus observed about a Pipeline.",
        "properties": {
          "completionTime": {
            "description": "CompletionTime is when the Pipeline reached a terminal phase.",
            "type": "string"
          },
          "conditions": {
            "description": "Conditions are the Pipeline's conditions.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "cost": {
            "$ref": "#/components/schemas/Cost"
          },
          "estimate": {
            "$ref": "#/components/schemas/Estimate"
          },
          "message": {
            "description": "Message explains the phase in a sentence, naming the stage that failed.",
            "type": "string"
          },
          "observedGeneration": {
            "description": "ObservedGeneration is the spec generation this status reflects.",
            "format": "int64",
            "type": "integer"
          },
          "phase": {
            "description": "Phase is the lifecycle phase, from the run-to-completion vocabulary.",
            "type": "string"
          },
          "reason": {
            "description": "Reason is the machine-readable reason for the phase, for example StageFailed or MaxCostReached.",
            "type": "string"
          },
          "stages": {
            "description": "Stages has one entry per stage, Pending until its Job exists.",
            "items": {
              "$ref": "#/components/schemas/PipelineStageStatus"
            },
            "nullable": true,
            "type": "array"
          },
          "startTime": {
            "description": "StartTime is when the first stage Job was created.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Placement": {
        "additionalProperties": false,
        "description": "Placement constrains where work may run.",
        "properties": {
          "dedicated": {
            "description": "Dedicated is reserved; only true is accepted.",
            "type": "boolean"
          },
          "interruptible": {
            "description": "Interruptible is Never, Allow (the scheduler decides by expected cost) or Prefer.",
            "type": "string"
          },
          "maxRateUSDPerHour": {
            "description": "MaxRateUSDPerHour filters out offerings above this customer rate.",
            "type": "string"
          },
          "offerings": {
            "description": "Offerings restricts placement to these Offerings.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "pool": {
            "description": "Pool is a BYOC Pool in the project.",
            "type": "string"
          },
          "profile": {
            "description": "Profile is Balanced, Cost or Speed.",
            "type": "string"
          },
          "queueTimeout": {
            "description": "QueueTimeout is how long the Job may wait for capacity before failing with CapacityUnavailable (default 24h; 0s waits forever).",
            "type": "string"
          },
          "regions": {
            "description": "Regions are region classes (us, eu, …); empty means any.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "PlacementExplain": {
        "additionalProperties": false,
        "description": "PlacementExplain is the scheduler's explanation of a placement; Estimate's placementPreview has the same shape.",
        "properties": {
          "fallbacks": {
            "description": "Fallbacks are the offering classes that would be tried next.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "profile": {
            "description": "Profile is the placement profile that weighted the scores.",
            "type": "string"
          },
          "rejected": {
            "description": "Rejected are up to 20 offering classes ruled out, with why.",
            "items": {
              "$ref": "#/components/schemas/PlacementRejection"
            },
            "nullable": true,
            "type": "array"
          },
          "scores": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Scores are the winner's decimal scores by name: fit, timeToResult, costToComplete, recoveryValue, health.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "PlacementPreview": {
        "additionalProperties": false,
        "description": "PlacementPreview is the customer-safe description of the capacity a create would use.",
        "properties": {
          "explain": {
            "description": "Explain is the scheduler's explanation, the same shape as Attempt status.placement.explain."
          },
          "interruptible": {
            "description": "Interruptible reports whether the capacity can be reclaimed.",
            "type": "boolean"
          },
          "offering": {
            "description": "Offering is the offering id, for example h100-sxm-80g-x8-us.",
            "type": "string"
          },
          "regionClass": {
            "description": "RegionClass is the region class of the offering.",
            "type": "string"
          },
          "warmReuse": {
            "description": "WarmReuse reports whether warm capacity would be reused.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "PlacementRejection": {
        "additionalProperties": false,
        "description": "PlacementRejection is one offering class a placement ruled out.",
        "properties": {
          "offeringClass": {
            "description": "OfferingClass is the offering class ruled out.",
            "type": "string"
          },
          "reason": {
            "description": "Reason is the stable reason code, for example InsufficientCapacity.",
            "type": "string"
          }
        },
        "required": [
          "offeringClass",
          "reason"
        ],
        "type": "object"
      },
      "Pool": {
        "additionalProperties": false,
        "description": "Pool is a set of the customer's own hosts that Nodus measures, routes work onto, forecasts and manages.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/PoolSpec"
          },
          "status": {
            "$ref": "#/components/schemas/PoolStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Pool",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "PoolAct": {
        "additionalProperties": false,
        "description": "PoolAct configures the Act tier.",
        "properties": {
          "mode": {
            "description": "Mode is Off, Shadow, Propose or Auto. Default Off.",
            "type": "string"
          },
          "paused": {
            "description": "Paused is the kill switch: running actions stop at their next safe point and pending ones are canceled.",
            "type": "boolean"
          },
          "policies": {
            "description": "Policies are the actions Act may take, at most 16.",
            "items": {
              "$ref": "#/components/schemas/PoolActPolicy"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "PoolActPolicy": {
        "additionalProperties": false,
        "description": "PoolActPolicy is one automated action and its bounds.",
        "properties": {
          "action": {
            "description": "Action is IdleReclaim, Drain, Defragment, WaitTuning or Burst.",
            "type": "string"
          },
          "duration": {
            "description": "Duration is the length of a Drain window.",
            "type": "string"
          },
          "idleFor": {
            "description": "IdleFor is how long a host must be idle before IdleReclaim returns it.",
            "type": "string"
          },
          "maxGPUs": {
            "description": "MaxGPUs caps the GPUs a Burst policy pre-approves.",
            "format": "int32",
            "type": "integer"
          },
          "maxRateUSDPerHour": {
            "description": "MaxRateUSDPerHour caps the market rate a Burst policy pre-approves, as a decimal string.",
            "type": "string"
          },
          "maxWaitTimeout": {
            "description": "MaxWaitTimeout bounds the wait timeout a Job may ask for in this Pool.",
            "type": "string"
          },
          "minWaitTimeout": {
            "description": "MinWaitTimeout and MaxWaitTimeout bound WaitTuning.",
            "type": "string"
          },
          "schedule": {
            "description": "Schedule is the cron expression that opens a Drain window.",
            "type": "string"
          }
        },
        "required": [
          "action"
        ],
        "type": "object"
      },
      "PoolActStatus": {
        "additionalProperties": false,
        "description": "PoolActStatus counts open actions.",
        "properties": {
          "lastActionTime": {
            "description": "LastActionTime is when the latest PoolAction was created.",
            "type": "string"
          },
          "pending": {
            "description": "Pending counts PoolActions waiting for a decision.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "pending"
        ],
        "type": "object"
      },
      "PoolAction": {
        "additionalProperties": false,
        "description": "PoolAction is one Act decision: an action on a Pool's hosts or routing that a member approves or rejects, or that runs by policy. Only the Act controller creates PoolActions; members change only spec.decision.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/PoolActionSpec"
          },
          "status": {
            "$ref": "#/components/schemas/PoolActionStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "PoolAction",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "PoolActionList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PoolAction"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "PoolActionResult": {
        "additionalProperties": false,
        "description": "PoolActionResult is the outcome on one target.",
        "properties": {
          "message": {
            "description": "Message explains the outcome.",
            "type": "string"
          },
          "outcome": {
            "description": "Applied, Skipped, Failed, Reverted",
            "type": "string"
          },
          "target": {
            "description": "Target is the Node or object the result is for.",
            "type": "string"
          }
        },
        "required": [
          "target",
          "outcome"
        ],
        "type": "object"
      },
      "PoolActionSpec": {
        "additionalProperties": false,
        "description": "PoolActionSpec is the proposed action.",
        "properties": {
          "action": {
            "description": "Action is the policy action that selected it.",
            "type": "string"
          },
          "change": {
            "$ref": "#/components/schemas/PoolRoutingChange"
          },
          "decision": {
            "description": "Decision is Pending, Approved or Rejected; the only field a member writes, once.",
            "type": "string"
          },
          "estimatedSavingsUSD": {
            "description": "EstimatedSavingsUSD is the estimated saving over 30 days, as a decimal string.",
            "type": "string"
          },
          "expirationTime": {
            "description": "ExpirationTime is when an undecided Propose action is canceled (24 h after creation).",
            "type": "string"
          },
          "mode": {
            "description": "Mode is the Pool's act.mode when the action was created.",
            "type": "string"
          },
          "opportunityCostUSD": {
            "description": "OpportunityCostUSD is the estimated cost of taking the action, as a decimal string.",
            "type": "string"
          },
          "pool": {
            "description": "Pool is the Pool the action applies to.",
            "type": "string"
          },
          "reason": {
            "description": "Reason explains, in words, why the action was selected.",
            "type": "string"
          },
          "recommendation": {
            "description": "Recommendation is the id of the recommendation the action came from, when there is one.",
            "type": "string"
          },
          "targets": {
            "$ref": "#/components/schemas/PoolActionTargets"
          }
        },
        "required": [
          "pool",
          "action",
          "reason",
          "mode"
        ],
        "type": "object"
      },
      "PoolActionStatus": {
        "additionalProperties": false,
        "description": "PoolActionStatus is the action's progress.",
        "properties": {
          "completionTime": {
            "description": "CompletionTime is when the action finished.",
            "type": "string"
          },
          "conditions": {
            "description": "Conditions carries the action's conditions.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "executed": {
            "description": "Executed is true only when the action changed something; Shadow records stay false.",
            "type": "boolean"
          },
          "handledRequests": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "HandledRequests records the nodus.dev/revert-requested-at value last acted on.",
            "type": "object"
          },
          "phase": {
            "description": "Phase is the action's phase.",
            "type": "string"
          },
          "previous": {
            "$ref": "#/components/schemas/PoolRoutingChange"
          },
          "reason": {
            "description": "Reason is the terminal phase's reason (Expired, Rejected, KillSwitch, …).",
            "type": "string"
          },
          "results": {
            "description": "Results are the outcomes per target.",
            "items": {
              "$ref": "#/components/schemas/PoolActionResult"
            },
            "nullable": true,
            "type": "array"
          },
          "revertible": {
            "description": "Revertible is true when the executed change can be undone with `nodus pool revert`.",
            "type": "boolean"
          },
          "startTime": {
            "description": "StartTime is when the action started.",
            "type": "string"
          }
        },
        "required": [
          "executed"
        ],
        "type": "object"
      },
      "PoolActionTargets": {
        "additionalProperties": false,
        "description": "PoolActionTargets names what an action touches.",
        "properties": {
          "nodes": {
            "description": "Nodes are the Nodes the action touches.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "objects": {
            "description": "Objects are the objects the action touches, as kind/name.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "PoolCapacity": {
        "additionalProperties": false,
        "description": "PoolCapacity is the Pool's inventory.",
        "properties": {
          "gpus": {
            "additionalProperties": {
              "$ref": "#/components/schemas/DeviceCounts"
            },
            "description": "GPUs counts devices per accelerator model.",
            "type": "object"
          },
          "nodes": {
            "description": "Nodes is the number of enrolled hosts.",
            "format": "int32",
            "type": "integer"
          },
          "readyNodes": {
            "description": "ReadyNodes is the number of hosts that are Ready.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "nodes",
          "readyNodes"
        ],
        "type": "object"
      },
      "PoolForecastSummary": {
        "additionalProperties": false,
        "description": "PoolForecastSummary is the headline of the latest forecast.",
        "properties": {
          "generatedTime": {
            "description": "GeneratedTime is when the forecast was made.",
            "type": "string"
          },
          "horizon": {
            "description": "Horizon is how far ahead the forecast looks.",
            "type": "string"
          },
          "peakDemandGPUs": {
            "$ref": "#/components/schemas/Band"
          },
          "shortfallTime": {
            "description": "ShortfallTime is the first hour the p90 demand exceeds the Pool's devices, when inside the horizon.",
            "type": "string"
          }
        },
        "required": [
          "generatedTime",
          "horizon",
          "peakDemandGPUs"
        ],
        "type": "object"
      },
      "PoolList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Pool"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "PoolPredict": {
        "additionalProperties": false,
        "description": "PoolPredict configures the Predict tier.",
        "properties": {
          "enabled": {
            "description": "Enabled turns forecasts and recommendations on; enabling needs billing:write and rate consent.",
            "type": "boolean"
          },
          "horizon": {
            "description": "Horizon is how far forecasts look ahead, from 24h to 720h. Default 168h.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PoolPredictStatus": {
        "additionalProperties": false,
        "description": "PoolPredictStatus is Predict's billing anchor.",
        "properties": {
          "enabledTime": {
            "description": "EnabledTime is when Predict was enabled; the Predict fee is billed from it.",
            "type": "string"
          }
        },
        "required": [
          "enabledTime"
        ],
        "type": "object"
      },
      "PoolRouting": {
        "additionalProperties": false,
        "description": "PoolRouting is the Pool's placement policy for pool-routed work.",
        "properties": {
          "burstToMarket": {
            "description": "BurstToMarket is Allow, Approve or Deny. Default Approve.",
            "type": "string"
          },
          "mode": {
            "description": "Mode is Prefer (Pool first, then the market per burstToMarket) or Only (never the market). Default Prefer.",
            "type": "string"
          },
          "waitPolicy": {
            "description": "WaitPolicy is Never, Cheaper or Timeout. Default Timeout.",
            "type": "string"
          },
          "waitTimeout": {
            "description": "WaitTimeout bounds the wait for Pool capacity under waitPolicy Timeout, from 1m to 24h. Default 30m.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PoolRoutingChange": {
        "additionalProperties": false,
        "description": "PoolRoutingChange is a bounded patch of Pool.spec.routing.",
        "properties": {
          "burstMaxGPUs": {
            "description": "BurstMaxGPUs is the new burst GPU bound.",
            "format": "int32",
            "type": "integer"
          },
          "burstToMarket": {
            "description": "BurstToMarket is the new burst policy.",
            "type": "string"
          },
          "waitTimeout": {
            "description": "WaitTimeout is the new wait timeout.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PoolRoutingStatus": {
        "additionalProperties": false,
        "description": "PoolRoutingStatus counts pool-routed objects that are not placed yet.",
        "properties": {
          "burstPending": {
            "description": "BurstPending counts burst decisions waiting for approval.",
            "format": "int32",
            "type": "integer"
          },
          "consent": {
            "$ref": "#/components/schemas/PriceConsent"
          },
          "waiting": {
            "description": "Waiting counts pool-routed objects waiting for capacity.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "waiting",
          "burstPending"
        ],
        "type": "object"
      },
      "PoolSpec": {
        "additionalProperties": false,
        "description": "PoolSpec is the desired behavior of a Pool.",
        "properties": {
          "act": {
            "$ref": "#/components/schemas/PoolAct"
          },
          "predict": {
            "$ref": "#/components/schemas/PoolPredict"
          },
          "routing": {
            "$ref": "#/components/schemas/PoolRouting"
          },
          "sandboxCapable": {
            "description": "SandboxCapable lets the Pool's hosts also run CPU Sandboxes under gVisor.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "PoolStatus": {
        "additionalProperties": false,
        "description": "PoolStatus is the observed state of a Pool.",
        "properties": {
          "act": {
            "$ref": "#/components/schemas/PoolActStatus"
          },
          "capacity": {
            "$ref": "#/components/schemas/PoolCapacity"
          },
          "conditions": {
            "description": "Conditions carries the Pool's conditions.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "forecast": {
            "$ref": "#/components/schemas/PoolForecastSummary"
          },
          "phase": {
            "description": "Phase is the Pool's lifecycle phase.",
            "type": "string"
          },
          "predict": {
            "$ref": "#/components/schemas/PoolPredictStatus"
          },
          "routing": {
            "$ref": "#/components/schemas/PoolRoutingStatus"
          },
          "utilization": {
            "$ref": "#/components/schemas/PoolUtilization"
          }
        },
        "type": "object"
      },
      "PoolUtilization": {
        "additionalProperties": false,
        "description": "PoolUtilization summarizes a window of utilization.",
        "properties": {
          "deviceHours": {
            "description": "decimal device-hours of Nodus-scheduled work",
            "type": "string"
          },
          "gpuPercent": {
            "description": "GPUPercent is the GPU busy share over the window, in percent.",
            "format": "int32",
            "type": "integer"
          },
          "window": {
            "description": "Window is the window the summary covers.",
            "type": "string"
          }
        },
        "required": [
          "gpuPercent"
        ],
        "type": "object"
      },
      "PriceConsent": {
        "additionalProperties": false,
        "description": "PriceConsent records the platform price a caller agreed to and when.",
        "properties": {
          "rateUSD": {
            "description": "RateUSD is the agreed rate in US dollars, as a decimal string.",
            "type": "string"
          },
          "time": {
            "description": "Time is when the caller agreed.",
            "type": "string"
          }
        },
        "required": [
          "rateUSD",
          "time"
        ],
        "type": "object"
      },
      "Progress": {
        "additionalProperties": false,
        "description": "Progress is what the program reported.",
        "properties": {
          "metrics": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Metrics are the latest scalar metrics, as decimal strings.",
            "type": "object"
          },
          "stage": {
            "description": "Stage is a domain stage name.",
            "type": "string"
          },
          "units": {
            "$ref": "#/components/schemas/ProgressUnits"
          }
        },
        "type": "object"
      },
      "ProgressUnits": {
        "additionalProperties": false,
        "description": "ProgressUnits counts work units.",
        "properties": {
          "completed": {
            "description": "Completed is units done.",
            "format": "int64",
            "type": "integer"
          },
          "total": {
            "description": "Total is units planned, when known.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "completed"
        ],
        "type": "object"
      },
      "Recovery": {
        "additionalProperties": false,
        "description": "Recovery says how progress survives lost capacity.",
        "properties": {
          "checkpoint": {
            "$ref": "#/components/schemas/CheckpointPolicy"
          },
          "continuity": {
            "description": "Continuity is Checkpointed (restore the latest checkpoint), Restartable (progress cursor) or Ephemeral.",
            "type": "string"
          },
          "maxAttempts": {
            "description": "MaxAttempts is how many infrastructure replacements each index may use (1–32; gangs count restarts).",
            "format": "int32",
            "type": "integer"
          },
          "minProgressDuration": {
            "description": "MinProgressDuration is the run time that counts as progress (default 2m).",
            "type": "string"
          },
          "onInterruption": {
            "description": "OnInterruption is Resume, or Fail to fail instead of recovering or suspending.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "RemoteError": {
        "additionalProperties": false,
        "description": "RemoteError is an exception the function raised.",
        "properties": {
          "message": {
            "description": "Message is the exception message, scrubbed.",
            "type": "string"
          },
          "traceback": {
            "description": "Traceback is the formatted traceback, scrubbed.",
            "type": "string"
          },
          "type": {
            "description": "Type is the exception's qualified name; the SDK re-raises it when importable.",
            "type": "string"
          }
        },
        "required": [
          "type",
          "message"
        ],
        "type": "object"
      },
      "Resources": {
        "additionalProperties": false,
        "description": "Resources are capacity floors. For GPU work the offering's host shape applies if larger.",
        "properties": {
          "cpu": {
            "description": "CPU is the vCPU floor.",
            "type": "string"
          },
          "disk": {
            "description": "Disk is the ephemeral disk floor.",
            "type": "string"
          },
          "gpu": {
            "$ref": "#/components/schemas/GPURequest"
          },
          "memory": {
            "description": "Memory is the host memory floor.",
            "type": "string"
          },
          "nodes": {
            "description": "Nodes above 1 is shorthand for spec.distributed.nodes and is stored in that form.",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "S3Connection": {
        "additionalProperties": false,
        "description": "S3Connection is a bucket.",
        "properties": {
          "bucket": {
            "description": "Bucket is the S3 bucket name.",
            "type": "string"
          },
          "endpoint": {
            "description": "Endpoint is an S3-compatible endpoint (https).",
            "type": "string"
          },
          "prefix": {
            "description": "Prefix limits the Connection to keys under it; empty is the whole bucket.",
            "type": "string"
          },
          "region": {
            "description": "Region is the bucket's region.",
            "type": "string"
          }
        },
        "required": [
          "bucket",
          "region"
        ],
        "type": "object"
      },
      "S3Source": {
        "additionalProperties": false,
        "description": "S3Source is a bucket prefix read through an S3 Connection.",
        "properties": {
          "connection": {
            "description": "Connection names the S3 Connection.",
            "type": "string"
          },
          "uri": {
            "description": "URI is s3://bucket/prefix.",
            "type": "string"
          }
        },
        "required": [
          "uri",
          "connection"
        ],
        "type": "object"
      },
      "Sandbox": {
        "additionalProperties": false,
        "description": "Sandbox is an isolated container for agents and untrusted code on Nodus CPU nodes. You run commands in it, read and write its files, stop it to stop paying for compute and start it again with its /workspace kept. It bills per second while it holds compute, and stops by itself when idle.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/SandboxSpec"
          },
          "status": {
            "$ref": "#/components/schemas/SandboxStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Sandbox",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "SandboxAttempt": {
        "additionalProperties": false,
        "description": "SandboxAttempt names one run of a Sandbox's container.",
        "properties": {
          "epoch": {
            "description": "Epoch counts the runs: it grows on every start and every recovery.",
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "description": "Name is the attempt's id.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "epoch"
        ],
        "type": "object"
      },
      "SandboxContinuity": {
        "additionalProperties": false,
        "description": "SandboxContinuity sets what survives a stop.",
        "properties": {
          "mode": {
            "description": "Mode is Snapshotted (the default: /workspace is saved on stop and restored on start) or Ephemeral (every start begins from the image).",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SandboxLifecycleSpec": {
        "additionalProperties": false,
        "description": "SandboxLifecycleSpec sets when a Sandbox stops or is deleted without being asked.",
        "properties": {
          "idleTimeout": {
            "description": "IdleTimeout stops (or deletes, with onIdle Delete) the Sandbox after this long with no running command, no file request and no terminal input: 0s never, or 1m–24h (default 5m). A silent open terminal is idle.",
            "type": "string"
          },
          "maxLifetime": {
            "description": "MaxLifetime deletes the Sandbox this long after it was created, counting stopped time: 1m–720h (default 24h).",
            "type": "string"
          },
          "onIdle": {
            "description": "OnIdle is Stop (the default) or Delete.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SandboxList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Sandbox"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "SandboxSnapshot": {
        "additionalProperties": false,
        "description": "SandboxSnapshot describes the last saved copy of /workspace.",
        "properties": {
          "reason": {
            "description": "Reason is Stop.",
            "type": "string"
          },
          "time": {
            "description": "Time is when it was saved.",
            "type": "string"
          }
        },
        "required": [
          "time",
          "reason"
        ],
        "type": "object"
      },
      "SandboxSpec": {
        "additionalProperties": false,
        "description": "SandboxSpec is the container to run and its lifecycle.",
        "properties": {
          "args": {
            "description": "Args are the arguments of Command.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "command": {
            "description": "Command is an optional main process. Without it the Sandbox idles and is driven by exec.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "continuity": {
            "$ref": "#/components/schemas/SandboxContinuity"
          },
          "env": {
            "description": "Env sets environment variables (at most 256; the NODUS_ prefix is reserved). A value read from a Secret key uses valueFrom.secretKeyRef.",
            "items": {
              "$ref": "#/components/schemas/EnvVar"
            },
            "nullable": true,
            "type": "array"
          },
          "image": {
            "description": "Image is the container image, such as nodus/agent-tools or ghcr.io/acme/tools:1.2; it is pinned to a digest when the Sandbox is created. The CLI and SDK send nodus/agent-tools when you name none.",
            "type": "string"
          },
          "lifecycle": {
            "$ref": "#/components/schemas/SandboxLifecycleSpec"
          },
          "maxCostUSD": {
            "description": "MaxCostUSD caps what the Sandbox may spend across every start, as a decimal USD string such as \"5.00\". It can only be raised.",
            "type": "string"
          },
          "network": {
            "$ref": "#/components/schemas/Network"
          },
          "resources": {
            "$ref": "#/components/schemas/Resources"
          },
          "secrets": {
            "description": "Secrets mount Secrets as env vars and 0400 files under /run/secrets/\u003cname\u003e/\u003ckey\u003e (at most 32). Each start pins the newest version of each Secret (or the version a mount names) and keeps it until it stops, so a new value reaches the Sandbox on its next start.",
            "items": {
              "$ref": "#/components/schemas/SecretMount"
            },
            "nullable": true,
            "type": "array"
          },
          "state": {
            "description": "State is Running (the default) or Stopped. Stopping releases the compute and keeps /workspace.",
            "type": "string"
          },
          "workingDir": {
            "description": "WorkingDir is the absolute directory commands start in (default /workspace).",
            "type": "string"
          }
        },
        "required": [
          "image"
        ],
        "type": "object"
      },
      "SandboxStatus": {
        "additionalProperties": false,
        "description": "SandboxStatus is what Nodus observed about a Sandbox.",
        "properties": {
          "activity": {
            "description": "Activity is Busy while a command runs, else Idle.",
            "type": "string"
          },
          "attempt": {
            "$ref": "#/components/schemas/SandboxAttempt"
          },
          "conditions": {
            "description": "Conditions are Scheduled, Funded, Ready and StateSaved.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "cost": {
            "$ref": "#/components/schemas/Cost"
          },
          "expirationTime": {
            "description": "ExpirationTime is when maxLifetime deletes the Sandbox.",
            "type": "string"
          },
          "handledRequests": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "HandledRequests records the nodus.dev/start-requested-at value last acted on.",
            "type": "object"
          },
          "image": {
            "$ref": "#/components/schemas/ImageStatus"
          },
          "lastActivityTime": {
            "description": "LastActivityTime is the last command, file request or terminal input seen; idleTimeout counts from it.",
            "type": "string"
          },
          "message": {
            "description": "Message is a human-readable account of Reason.",
            "type": "string"
          },
          "phase": {
            "description": "Phase is Pending, Starting, Running, Recovering, Stopping, Stopped, Terminating or Failed.",
            "type": "string"
          },
          "reason": {
            "description": "Reason says why the Sandbox Failed, such as StartupFailed or NodeLost.",
            "type": "string"
          },
          "secretVersionIDs": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "SecretVersionIDs identify the versions resolved when the Sandbox was created.",
            "type": "object"
          },
          "secretVersions": {
            "additionalProperties": {
              "format": "int32",
              "type": "integer"
            },
            "description": "SecretVersions are the versions resolved when the Sandbox was created, which proves its Secrets exist; each start pins the newest version again.",
            "type": "object"
          },
          "snapshot": {
            "$ref": "#/components/schemas/SandboxSnapshot"
          },
          "stopReason": {
            "description": "StopReason says why the Sandbox is stopped; empty while it runs.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Secret": {
        "additionalProperties": false,
        "description": "Secret is versioned, envelope-encrypted key/value data. Values are write-only: no API returns them, and they reach containers only as env vars and 0400 tmpfs files of an attempt that pinned the version at admission.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/SecretSpec"
          },
          "status": {
            "$ref": "#/components/schemas/SecretStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Secret",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "SecretKeySelector": {
        "additionalProperties": false,
        "description": "SecretKeySelector selects one key of a Secret.",
        "properties": {
          "key": {
            "description": "Key is the key within it.",
            "type": "string"
          },
          "name": {
            "description": "Name is the Secret.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "key"
        ],
        "type": "object"
      },
      "SecretList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Secret"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "SecretMount": {
        "additionalProperties": false,
        "description": "SecretMount mounts one Secret, optionally pinned to a version. The bare name is accepted on write.",
        "properties": {
          "name": {
            "description": "Name is the Secret.",
            "type": "string"
          },
          "version": {
            "description": "Version pins a version; unset pins the latest at admission.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "SecretSpec": {
        "additionalProperties": false,
        "description": "SecretSpec is a Secret's type and its write-only values.",
        "properties": {
          "data": {
            "additionalProperties": {
              "format": "base64",
              "type": "string"
            },
            "description": "Data maps keys to base64 values. Write-only: a write that carries it creates a new version and the stored object keeps only the key names.",
            "type": "object"
          },
          "stringData": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "StringData is Data as plain strings, merged over Data on write. Write-only.",
            "type": "object"
          },
          "type": {
            "description": "Type is Opaque or Registry; immutable.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SecretStatus": {
        "additionalProperties": false,
        "description": "SecretStatus reports versions and key names.",
        "properties": {
          "keys": {
            "description": "Keys are the current version's key names.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "lastUsedTime": {
            "description": "LastUsedTime is the last delivery to an attempt.",
            "type": "string"
          },
          "phase": {
            "description": "Phase is Ready, or Failed when the values could not be encrypted.",
            "type": "string"
          },
          "reason": {
            "description": "Reason says why the Secret failed.",
            "type": "string"
          },
          "version": {
            "description": "Version is the current version; new attempts pin it.",
            "format": "int32",
            "type": "integer"
          },
          "versions": {
            "description": "Versions are the most recent versions, newest first (at most 10).",
            "items": {
              "$ref": "#/components/schemas/SecretVersionInfo"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "SecretVersionInfo": {
        "additionalProperties": false,
        "description": "SecretVersionInfo describes one version without its values.",
        "properties": {
          "createTime": {
            "description": "CreateTime is when the version was written.",
            "type": "string"
          },
          "createdBy": {
            "description": "CreatedBy is the principal that wrote it.",
            "type": "string"
          },
          "keys": {
            "description": "Keys are its key names.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "version": {
            "description": "Version is the version number, from 1.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "version",
          "createTime"
        ],
        "type": "object"
      },
      "ServiceAccount": {
        "additionalProperties": false,
        "description": "ServiceAccount is a project's identity for code and machines: the scopes its tokens and bound API keys carry. It belongs to the project, not to the member who created it, so its keys keep working when that member leaves.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/ServiceAccountSpec"
          },
          "status": {
            "$ref": "#/components/schemas/ServiceAccountStatus"
          }
        },
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "ServiceAccount",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": [
            "apply",
            "delete"
          ]
        }
      },
      "ServiceAccountList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/ServiceAccount"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "ServiceAccountSpec": {
        "additionalProperties": false,
        "description": "ServiceAccountSpec is what a ServiceAccount may do.",
        "properties": {
          "description": {
            "description": "Description says what the ServiceAccount is for.",
            "type": "string"
          },
          "scopes": {
            "description": "Scopes are what its tokens and bound keys may do, within the creator's role scopes; empty allows only an attempt's own calls.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "ServiceAccountStatus": {
        "additionalProperties": false,
        "description": "ServiceAccountStatus reports use.",
        "properties": {
          "lastUsedTime": {
            "description": "LastUsedTime is the last request made with one of its credentials.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ShardInfo": {
        "additionalProperties": false,
        "properties": {
          "selector": {
            "type": "string"
          }
        },
        "required": [
          "selector"
        ],
        "type": "object"
      },
      "Sidecar": {
        "additionalProperties": false,
        "description": "Sidecar is a helper container with native-sidecar semantics.",
        "properties": {
          "command": {
            "description": "Command is the sidecar's argv.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "env": {
            "description": "Env adds environment variables.",
            "items": {
              "$ref": "#/components/schemas/EnvVar"
            },
            "nullable": true,
            "type": "array"
          },
          "image": {
            "description": "Image defaults to the Job's image.",
            "type": "string"
          },
          "name": {
            "description": "Name is unique within the Job.",
            "type": "string"
          },
          "startupTimeout": {
            "description": "StartupTimeout bounds how long the sidecar may take to become ready.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "command"
        ],
        "type": "object"
      },
      "SinkStatus": {
        "additionalProperties": false,
        "description": "SinkStatus is the state of one sink load.",
        "properties": {
          "message": {
            "description": "Message explains a failure.",
            "type": "string"
          },
          "phase": {
            "description": "Phase is Pending, Loading, Loaded or Failed.",
            "type": "string"
          },
          "rows": {
            "description": "Rows is how many rows were loaded.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "phase"
        ],
        "type": "object"
      },
      "Source": {
        "additionalProperties": false,
        "description": "Source is the code for the container: exactly one of git and blob.",
        "properties": {
          "blob": {
            "description": "Blob is sha256:\u003chex\u003e of an archive uploaded through /blobs/v1.",
            "type": "string"
          },
          "git": {
            "$ref": "#/components/schemas/GitSource"
          }
        },
        "type": "object"
      },
      "SourceStatus": {
        "additionalProperties": false,
        "description": "SourceStatus is the resolved code.",
        "properties": {
          "blob": {
            "description": "Blob is the uploaded blob.",
            "type": "string"
          },
          "commit": {
            "description": "Commit is the resolved git commit.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SplitSize": {
        "additionalProperties": false,
        "description": "SplitSize is the number of tasks in a split.",
        "properties": {
          "size": {
            "description": "Size is the task count.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "size"
        ],
        "type": "object"
      },
      "StageInput": {
        "additionalProperties": false,
        "description": "StageInput names an output of a Pipeline stage.",
        "properties": {
          "output": {
            "description": "Output is the output name.",
            "type": "string"
          },
          "stage": {
            "description": "Stage is the producing stage.",
            "type": "string"
          }
        },
        "required": [
          "stage",
          "output"
        ],
        "type": "object"
      },
      "StartupEstimate": {
        "additionalProperties": false,
        "description": "StartupEstimate is the expected time to start.",
        "properties": {
          "cold": {
            "$ref": "#/components/schemas/DurationBand"
          },
          "warm": {
            "$ref": "#/components/schemas/DurationBand"
          }
        },
        "type": "object"
      },
      "Status": {
        "additionalProperties": false,
        "description": "Status is the error body of every API response: a Kubernetes metav1.Status (so kubectl and client-go understand it) plus three top-level extensions that those clients ignore (ADR-028).",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "code": {
            "format": "int32",
            "type": "integer"
          },
          "details": {
            "$ref": "#/components/schemas/StatusDetails"
          },
          "docs": {
            "description": "Docs is the URL of the code's docs page.",
            "type": "string"
          },
          "fix": {
            "description": "Fix says what to do next, for example a CLI command or the field to change.",
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          },
          "reason": {
            "type": "string",
            "x-extensible-enum": [
              "AdmissionsPaused",
              "AgentGroupClosed",
              "AgentGroupFull",
              "AgentRunFinished",
              "AgentStopped",
              "AlreadyExists",
              "ArrearsOutstanding",
              "BadRequest",
              "BudgetExceeded",
              "CapacityUnavailable",
              "CloudAccountNotVerified",
              "Conflict",
              "ConnectionNotReady",
              "EncryptionFailed",
              "EnrollmentTokenInvalid",
              "Expired",
              "FieldImmutable",
              "FileTooLarge",
              "Forbidden",
              "FunctionCallBatchTooLarge",
              "FunctionNotFound",
              "IdempotencyKeyReused",
              "ImageBuildUnavailable",
              "ImageNotFound",
              "ImageNotReady",
              "ImagePullFailed",
              "InsufficientCredits",
              "InternalError",
              "Invalid",
              "MethodNotAllowed",
              "NoSSHKey",
              "NotFound",
              "OutputIndexRequired",
              "OutputNotFound",
              "PaymentDisputed",
              "PaymentMethodRequired",
              "PaymentVerificationUnavailable",
              "PaymentsNotConfigured",
              "PoolActPaused",
              "PoolActionNotPending",
              "PoolActionNotReversible",
              "PoolInUse",
              "PreconditionFailed",
              "PriceConsentRequired",
              "PromoCodeExpired",
              "PromoCodeUsed",
              "QuotaExceeded",
              "RequestEntityTooLarge",
              "RequestInProgress",
              "SHA256Mismatch",
              "SandboxFailed",
              "SandboxNotRunning",
              "SandboxStarting",
              "SecretValueInEnv",
              "StdinBackpressure",
              "TooManyRequests",
              "TopUpLimitReached",
              "Unauthorized",
              "Unavailable",
              "Unsupported",
              "UnsupportedMediaType",
              "VolumeBusy",
              "WorkerNotAllowed",
              "WorkspaceStarting",
              "WorkspaceToolUnavailable"
            ]
          },
          "requestId": {
            "description": "RequestID identifies the request in logs and support tickets.",
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "StatusCause": {
        "additionalProperties": false,
        "properties": {
          "field": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "StatusDetails": {
        "additionalProperties": false,
        "properties": {
          "causes": {
            "items": {
              "$ref": "#/components/schemas/StatusCause"
            },
            "nullable": true,
            "type": "array"
          },
          "group": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "retryAfterSeconds": {
            "format": "int32",
            "type": "integer"
          },
          "uid": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "StorageStatus": {
        "additionalProperties": false,
        "description": "StorageStatus is the bytes a Job owns.",
        "properties": {
          "billedBytes": {
            "description": "BilledBytes is the share above the free inclusion.",
            "format": "int64",
            "type": "integer"
          },
          "bytes": {
            "description": "Bytes is checkpoints plus outputs.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "bytes",
          "billedBytes"
        ],
        "type": "object"
      },
      "Sweep": {
        "additionalProperties": false,
        "description": "Sweep fans a Job template out over a matrix of GPUs, regions and parameters, and reports cost, wall time and throughput per cell. Parameters reach a Job as NODUS_PARAM_\u003cNAME\u003e environment variables. Each cell runs as a Job named \u003csweep\u003e-\u003cindex\u003e, owned by the Sweep.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/SweepSpec"
          },
          "status": {
            "$ref": "#/components/schemas/SweepStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Sweep",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "SweepBest": {
        "additionalProperties": false,
        "description": "SweepBest points at the best succeeded cells.",
        "properties": {
          "byCost": {
            "description": "ByCost is the index of the cheapest succeeded cell.",
            "format": "int32",
            "type": "integer"
          },
          "byThroughput": {
            "description": "ByThroughput is the index of the succeeded cell with the most units per second.",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "SweepCell": {
        "additionalProperties": false,
        "description": "SweepCell is one cell of the matrix and what it measured.",
        "properties": {
          "costUSD": {
            "description": "CostUSD is what the cell has cost.",
            "type": "string"
          },
          "gpu": {
            "description": "GPU is the cell's GPU request, when the matrix sweeps GPUs.",
            "type": "string"
          },
          "index": {
            "description": "Index is the cell's position; the cell Job is named \u003csweep\u003e-\u003cindex\u003e.",
            "format": "int32",
            "type": "integer"
          },
          "object": {
            "description": "Object is the cell Job's name.",
            "type": "string"
          },
          "params": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Params are the cell's parameter values.",
            "type": "object"
          },
          "phase": {
            "description": "Phase is the cell Job's phase; Pending before the Job exists.",
            "type": "string"
          },
          "region": {
            "description": "Region is the cell's region, when the matrix sweeps regions.",
            "type": "string"
          },
          "repetition": {
            "description": "Repetition counts from 0.",
            "format": "int32",
            "type": "integer"
          },
          "unitsPerSecond": {
            "description": "UnitsPerSecond is the throughput the program reported, as a decimal string.",
            "type": "string"
          },
          "wallSeconds": {
            "description": "WallSeconds is the cell's wall time from start to completion.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "index",
          "repetition"
        ],
        "type": "object"
      },
      "SweepList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Sweep"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "SweepMatrix": {
        "additionalProperties": false,
        "description": "SweepMatrix lists the values of each swept dimension. An empty dimension keeps the template's value.",
        "properties": {
          "gpu": {
            "description": "GPU overrides resources.gpu per cell, at most 16 values, in the same \"H100:1\" form.",
            "items": {
              "$ref": "#/components/schemas/GPURequest"
            },
            "nullable": true,
            "type": "array"
          },
          "params": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "nullable": true,
              "type": "array"
            },
            "description": "Params maps an environment variable name (upper case, digits and underscores) to its values; each cell gets NODUS_PARAM_\u003cNAME\u003e. At most 16 names with 64 values each.",
            "type": "object"
          },
          "regions": {
            "description": "Regions narrows placement.regions to one region per cell; it may narrow, never widen, the template's.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "SweepSpec": {
        "additionalProperties": false,
        "description": "SweepSpec describes a Sweep. Everything is immutable after create except maxParallel, maxCostUSD (raise only) and state.",
        "properties": {
          "matrix": {
            "$ref": "#/components/schemas/SweepMatrix"
          },
          "maxCostUSD": {
            "description": "MaxCostUSD is one cap shared by every cell. Reaching it suspends every running cell with MaxCostReached; raising it resumes them.",
            "type": "string"
          },
          "maxParallel": {
            "description": "MaxParallel is how many cells may run at once, 1 to 256; the default is 4.",
            "format": "int32",
            "type": "integer"
          },
          "repetitions": {
            "description": "Repetitions runs every combination this many times, 1 to 64; the default is 1.",
            "format": "int32",
            "type": "integer"
          },
          "state": {
            "description": "State is the desired state: Running (the default), Suspended, or the cancel state. It propagates to the cells.",
            "type": "string"
          },
          "template": {
            "$ref": "#/components/schemas/SweepTemplate"
          }
        },
        "required": [
          "template"
        ],
        "type": "object"
      },
      "SweepStatus": {
        "additionalProperties": false,
        "description": "SweepStatus is what Nodus observed about a Sweep.",
        "properties": {
          "best": {
            "$ref": "#/components/schemas/SweepBest"
          },
          "cells": {
            "description": "Cells has one entry per cell, in index order.",
            "items": {
              "$ref": "#/components/schemas/SweepCell"
            },
            "nullable": true,
            "type": "array"
          },
          "completionTime": {
            "description": "CompletionTime is when the Sweep reached a terminal phase.",
            "type": "string"
          },
          "conditions": {
            "description": "Conditions are the Sweep's conditions.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "cost": {
            "$ref": "#/components/schemas/Cost"
          },
          "estimate": {
            "$ref": "#/components/schemas/Estimate"
          },
          "message": {
            "description": "Message explains the phase in a sentence.",
            "type": "string"
          },
          "observedGeneration": {
            "description": "ObservedGeneration is the spec generation this status reflects.",
            "format": "int64",
            "type": "integer"
          },
          "phase": {
            "description": "Phase is the lifecycle phase, from the run-to-completion vocabulary.",
            "type": "string"
          },
          "reason": {
            "description": "Reason is the machine-readable reason for the phase, for example CellsFailed or MaxCostReached.",
            "type": "string"
          },
          "startTime": {
            "description": "StartTime is when the first cell Job was created.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SweepTemplate": {
        "additionalProperties": false,
        "description": "SweepTemplate is the object every cell creates.",
        "properties": {
          "kind": {
            "description": "Kind is the cell kind: Job.",
            "type": "string"
          },
          "spec": {
            "$ref": "#/components/schemas/JobSpec"
          }
        },
        "required": [
          "kind",
          "spec"
        ],
        "type": "object"
      },
      "TopUp": {
        "additionalProperties": false,
        "description": "TopUp is a prepaid credit purchase. Creating one opens a Stripe Checkout page (status.checkoutURL); the wallet is credited once Stripe confirms the payment, whatever the browser does. Auto-recharge and imported legacy purchases are TopUps too, created by Nodus. A TopUp is never updated or deleted: an unpaid checkout expires.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/TopUpSpec"
          },
          "status": {
            "$ref": "#/components/schemas/TopUpStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "TopUp",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "TopUpList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/TopUp"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "TopUpPaymentMethod": {
        "additionalProperties": false,
        "description": "TopUpPaymentMethod is the card that paid.",
        "properties": {
          "brand": {
            "description": "Brand is the card network, such as visa.",
            "type": "string"
          },
          "last4": {
            "description": "Last4 is the card number's last four digits.",
            "type": "string"
          }
        },
        "required": [
          "brand",
          "last4"
        ],
        "type": "object"
      },
      "TopUpSpec": {
        "additionalProperties": false,
        "description": "TopUpSpec is the purchase.",
        "properties": {
          "amountUSD": {
            "description": "AmountUSD is the credit to buy, from \"5.00\" to \"1000.00\" in whole cents.",
            "type": "string"
          },
          "cancelURL": {
            "description": "CancelURL is where Checkout returns the browser when the customer leaves without paying.",
            "type": "string"
          },
          "origin": {
            "description": "Origin is how the TopUp is paid; customers create Checkout TopUps only.",
            "type": "string"
          },
          "savePaymentMethod": {
            "description": "SavePaymentMethod keeps the card for auto-recharge.",
            "type": "boolean"
          },
          "successURL": {
            "description": "SuccessURL is where Checkout returns the browser after paying: the console or an http://127.0.0.1 page. It is used once, when the checkout opens, and reads back empty.",
            "type": "string"
          }
        },
        "required": [
          "amountUSD"
        ],
        "type": "object"
      },
      "TopUpStatus": {
        "additionalProperties": false,
        "description": "TopUpStatus is the payment's progress.",
        "properties": {
          "checkoutURL": {
            "description": "CheckoutURL is the Stripe Checkout page to pay on.",
            "type": "string"
          },
          "conditions": {
            "description": "Conditions carry Paid and Credited.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "creditedUSD": {
            "description": "CreditedUSD is the credit the payment added to the wallet.",
            "type": "string"
          },
          "expirationTime": {
            "description": "ExpirationTime is when the checkout page stops taking payment.",
            "type": "string"
          },
          "invoicePDFURL": {
            "description": "InvoicePDFURL is the invoice as a PDF.",
            "type": "string"
          },
          "paidTime": {
            "description": "PaidTime is when Stripe captured the payment.",
            "type": "string"
          },
          "paymentIntent": {
            "description": "PaymentIntent is the Stripe payment, quoted when contacting support.",
            "type": "string"
          },
          "paymentMethod": {
            "$ref": "#/components/schemas/TopUpPaymentMethod"
          },
          "phase": {
            "description": "Phase is Queued while the checkout is created, Running while it is open, Succeeded once paid and credited, and Failed when it expired or the payment failed.",
            "type": "string"
          },
          "reason": {
            "description": "Reason qualifies the phase: PaymentPending while a bank payment settles, Expired or PaymentFailed once Failed.",
            "type": "string"
          },
          "receiptURL": {
            "description": "ReceiptURL is the Stripe-hosted invoice page.",
            "type": "string"
          },
          "refundedUSD": {
            "description": "RefundedUSD is the part of the credit refunded to the card.",
            "type": "string"
          },
          "transaction": {
            "description": "Transaction is the ledger Transaction that credited the payment.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Topology": {
        "additionalProperties": false,
        "description": "Topology is the resolved shape of a gang Job; it never changes across epochs.",
        "properties": {
          "accelerator": {
            "description": "Accelerator is the resolved accelerator id.",
            "type": "string"
          },
          "gpusPerNode": {
            "description": "GPUsPerNode is the GPUs on each node.",
            "format": "int32",
            "type": "integer"
          },
          "network": {
            "description": "Network is the locality the gang was placed under.",
            "type": "string"
          },
          "nodes": {
            "description": "Nodes is the gang size.",
            "format": "int32",
            "type": "integer"
          },
          "resolvedFrom": {
            "description": "ResolvedFrom is Nodes or TotalGPUs.",
            "type": "string"
          },
          "totalGPUs": {
            "description": "TotalGPUs is nodes × gpusPerNode.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "nodes",
          "gpusPerNode",
          "totalGPUs"
        ],
        "type": "object"
      },
      "URLInput": {
        "additionalProperties": false,
        "description": "URLInput is a file downloaded over HTTPS.",
        "properties": {
          "sha256": {
            "description": "SHA256 is the expected digest.",
            "type": "string"
          },
          "url": {
            "description": "URL is https:// only.",
            "type": "string"
          }
        },
        "required": [
          "url",
          "sha256"
        ],
        "type": "object"
      },
      "URLSource": {
        "additionalProperties": false,
        "description": "URLSource is one https file.",
        "properties": {
          "extract": {
            "description": "Extract is Auto (unpack zip and tar archives) or None.",
            "type": "string"
          },
          "sha256": {
            "description": "SHA256 is the expected hex digest.",
            "type": "string"
          },
          "url": {
            "description": "URL is the https address.",
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "USDBand": {
        "additionalProperties": false,
        "description": "USDBand is a median and a 90th-percentile amount in USD.",
        "properties": {
          "p50": {
            "description": "P50 is the median amount.",
            "type": "string"
          },
          "p90": {
            "description": "P90 is the 90th-percentile amount.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "UVSync": {
        "additionalProperties": false,
        "description": "UVSync installs a uv project (pyproject.toml and uv.lock) uploaded as a blob.",
        "properties": {
          "frozen": {
            "description": "Frozen installs exactly the lock file.",
            "type": "boolean"
          },
          "project": {
            "description": "Project is the blob digest (sha256:…) of the project archive.",
            "type": "string"
          }
        },
        "required": [
          "project"
        ],
        "type": "object"
      },
      "UnitMetrics": {
        "additionalProperties": false,
        "description": "UnitMetrics summarize per-unit timings.",
        "properties": {
          "completed": {
            "description": "Completed is units done.",
            "format": "int64",
            "type": "integer"
          },
          "costPerUnitUSD": {
            "description": "CostPerUnitUSD is cost divided by units.",
            "type": "string"
          },
          "p50Ms": {
            "description": "P50Ms is the median unit time.",
            "format": "int64",
            "type": "integer"
          },
          "p95Ms": {
            "description": "P95Ms is the 95th percentile unit time.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "completed"
        ],
        "type": "object"
      },
      "Volume": {
        "additionalProperties": false,
        "description": "Volume is named storage backed by immutable revisions in the Volume's own repository: ReadWriteOnce (one writer under a lease), ReadOnlyMany (the latest Ready revision) or ReadWriteMany (each attempt commits its changed paths as a new revision, last writer wins per path).",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/VolumeSpec"
          },
          "status": {
            "$ref": "#/components/schemas/VolumeStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Volume",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": null
        }
      },
      "VolumeGitSource": {
        "additionalProperties": false,
        "description": "VolumeGitSource is a git repository.",
        "properties": {
          "lfs": {
            "description": "LFS fetches LFS objects.",
            "type": "boolean"
          },
          "ref": {
            "description": "Ref is a branch, tag or commit.",
            "type": "string"
          },
          "repo": {
            "description": "Repo is the https clone URL.",
            "type": "string"
          }
        },
        "required": [
          "repo"
        ],
        "type": "object"
      },
      "VolumeHolder": {
        "additionalProperties": false,
        "description": "VolumeHolder is a ReadWriteOnce Volume's writer.",
        "properties": {
          "attempt": {
            "description": "Attempt is the attempt id.",
            "type": "string"
          },
          "epoch": {
            "description": "Epoch is the attempt's fencing epoch.",
            "format": "int64",
            "type": "integer"
          },
          "kind": {
            "description": "Kind and Name are the owning object.",
            "type": "string"
          },
          "name": {
            "description": "Name is the owning object's name.",
            "type": "string"
          }
        },
        "required": [
          "attempt",
          "epoch"
        ],
        "type": "object"
      },
      "VolumeImport": {
        "additionalProperties": false,
        "description": "VolumeImport describes an import.",
        "properties": {
          "attempt": {
            "description": "Attempt is the internal attempt running the import.",
            "type": "string"
          },
          "bytes": {
            "description": "Bytes is how much the import has written so far.",
            "format": "int64",
            "type": "integer"
          },
          "completionTime": {
            "description": "CompletionTime is when the import finished.",
            "type": "string"
          },
          "files": {
            "description": "Files is how many files the import has written so far.",
            "format": "int64",
            "type": "integer"
          },
          "generation": {
            "description": "Generation is the spec generation the import is for; a spec change starts a new import.",
            "format": "int64",
            "type": "integer"
          },
          "sha256": {
            "description": "SHA256 is the digest of the downloaded source, once known.",
            "type": "string"
          },
          "startTime": {
            "description": "StartTime is when the import started.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "VolumeInput": {
        "additionalProperties": false,
        "description": "VolumeInput names a Volume revision.",
        "properties": {
          "name": {
            "description": "Name is the Volume.",
            "type": "string"
          },
          "revision": {
            "description": "Revision pins a revision.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "VolumeList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Volume"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "VolumeMount": {
        "additionalProperties": false,
        "description": "VolumeMount mounts a Volume.",
        "properties": {
          "mountPath": {
            "description": "MountPath is the absolute mount point; system paths are refused.",
            "type": "string"
          },
          "readOnly": {
            "description": "ReadOnly mounts it read-only.",
            "type": "boolean"
          },
          "revision": {
            "description": "Revision pins a revision; only with readOnly.",
            "format": "int64",
            "type": "integer"
          },
          "volume": {
            "description": "Volume names the Volume.",
            "type": "string"
          }
        },
        "required": [
          "volume",
          "mountPath"
        ],
        "type": "object"
      },
      "VolumeSource": {
        "additionalProperties": false,
        "description": "VolumeSource is exactly one import source.",
        "properties": {
          "connectionQuery": {
            "$ref": "#/components/schemas/ConnectionQuerySource"
          },
          "git": {
            "$ref": "#/components/schemas/VolumeGitSource"
          },
          "huggingface": {
            "$ref": "#/components/schemas/HuggingFaceSource"
          },
          "s3": {
            "$ref": "#/components/schemas/S3Source"
          },
          "upload": {
            "$ref": "#/components/schemas/VolumeUploadSource"
          },
          "url": {
            "$ref": "#/components/schemas/URLSource"
          }
        },
        "type": "object"
      },
      "VolumeSpec": {
        "additionalProperties": false,
        "description": "VolumeSpec is a Volume's shape.",
        "properties": {
          "accessMode": {
            "description": "AccessMode is ReadWriteOnce, ReadOnlyMany or ReadWriteMany; immutable.",
            "type": "string"
          },
          "commitInterval": {
            "description": "CommitInterval is how often a ReadWriteOnce or ReadWriteMany mount commits (1m–1h).",
            "type": "string"
          },
          "maxCostUSD": {
            "description": "MaxCostUSD caps import and export attempts.",
            "type": "string"
          },
          "revisionHistoryLimit": {
            "description": "RevisionHistoryLimit is how many revisions are kept (1–100).",
            "format": "int32",
            "type": "integer"
          },
          "size": {
            "description": "Size caps the logical bytes of a revision; storage is billed on use.",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/VolumeSource"
          },
          "ttlAfterUnused": {
            "description": "TTLAfterUnused deletes the Volume this long after its last mount or upload.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "VolumeStatus": {
        "additionalProperties": false,
        "description": "VolumeStatus is the latest revision and usage.",
        "properties": {
          "conditions": {
            "description": "Conditions are the latest observations.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "holder": {
            "$ref": "#/components/schemas/VolumeHolder"
          },
          "import": {
            "$ref": "#/components/schemas/VolumeImport"
          },
          "lastCommitTime": {
            "description": "LastCommitTime is the latest revision's commit time.",
            "type": "string"
          },
          "message": {
            "description": "Message is a scrubbed explanation.",
            "type": "string"
          },
          "observedGeneration": {
            "description": "ObservedGeneration is the spec generation the status reflects.",
            "format": "int64",
            "type": "integer"
          },
          "phase": {
            "description": "Phase is Pending while creating or importing, Ready or Failed.",
            "type": "string"
          },
          "readers": {
            "description": "Readers is the number of attempts mounting it read-only.",
            "format": "int32",
            "type": "integer"
          },
          "reason": {
            "description": "Reason says why the Volume failed, for example ImportFailed.",
            "type": "string"
          },
          "revision": {
            "description": "Revision is the latest committed revision.",
            "format": "int32",
            "type": "integer"
          },
          "storage": {
            "$ref": "#/components/schemas/VolumeStorage"
          },
          "used": {
            "description": "Used is the logical size of the latest revision.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "VolumeStorage": {
        "additionalProperties": false,
        "description": "VolumeStorage is the repository's physical size.",
        "properties": {
          "billedBytes": {
            "description": "BilledBytes is the part billed after the org's inclusion.",
            "format": "int64",
            "type": "integer"
          },
          "bytes": {
            "description": "Bytes are all kept revisions, deduplicated and compressed.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "bytes",
          "billedBytes"
        ],
        "type": "object"
      },
      "VolumeUploadSource": {
        "additionalProperties": false,
        "description": "VolumeUploadSource marks an upload-filled Volume.",
        "type": "object"
      },
      "WandBConnection": {
        "additionalProperties": false,
        "description": "WandBConnection is a W\u0026B entity and project.",
        "properties": {
          "entity": {
            "description": "Entity is the W\u0026B user or team.",
            "type": "string"
          },
          "live": {
            "description": "Live adds run links and WANDB_* env to attached Jobs.",
            "type": "boolean"
          },
          "project": {
            "description": "Project is the W\u0026B project runs are logged to.",
            "type": "string"
          }
        },
        "required": [
          "entity",
          "project"
        ],
        "type": "object"
      },
      "WebhookDeliveryCounts": {
        "additionalProperties": false,
        "description": "WebhookDeliveryCounts counts finished deliveries.",
        "properties": {
          "failed": {
            "description": "Failed is the deliveries that exhausted their retries or were refused outright.",
            "format": "int32",
            "type": "integer"
          },
          "succeeded": {
            "description": "Succeeded is the deliveries the receiver accepted.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "succeeded",
          "failed"
        ],
        "type": "object"
      },
      "WebhookEndpoint": {
        "additionalProperties": false,
        "description": "WebhookEndpoint is an HTTPS receiver for Events. Each delivery is signed with the Standard Webhooks scheme (webhook-id, webhook-timestamp and webhook-signature headers), sent to a public address without following redirects, and retried with exponential backoff for 3 days. A webhookendpoint.ping delivery is sent on create.",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/WebhookEndpointSpec"
          },
          "status": {
            "$ref": "#/components/schemas/WebhookEndpointStatus"
          }
        },
        "required": [
          "spec"
        ],
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "WebhookEndpoint",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": false,
          "FilesTarget": false,
          "Requests": null,
          "States": null,
          "Tools": [
            "apply",
            "delete",
            "record"
          ]
        }
      },
      "WebhookEndpointList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/WebhookEndpoint"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "WebhookEndpointSpec": {
        "additionalProperties": false,
        "description": "WebhookEndpointSpec says where events go. Every field can change after create.",
        "properties": {
          "description": {
            "description": "Description says what the endpoint is for.",
            "type": "string"
          },
          "enabled": {
            "description": "Enabled pauses deliveries when false. Defaults to true.",
            "type": "boolean"
          },
          "eventTypes": {
            "description": "EventTypes selects the events sent: exact types such as job.succeeded, prefixes such as job.* or billing.*, or *. Defaults to every event.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "projects": {
            "description": "Projects limits project events to these projects; empty means every project. Org-level events always match.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "url": {
            "description": "URL receives the deliveries. It must be https with a public address; redirects are not followed.",
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "WebhookEndpointStatus": {
        "additionalProperties": false,
        "description": "WebhookEndpointStatus is what Nodus observed.",
        "properties": {
          "conditions": {
            "description": "Conditions are the latest observations: Healthy is False with reason DeliveriesFailing while the receiver fails.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "deliveries24h": {
            "$ref": "#/components/schemas/WebhookDeliveryCounts"
          },
          "failingSince": {
            "description": "FailingSince is when the receiver started failing every delivery; unset while it works.",
            "type": "string"
          },
          "lastDelivery": {
            "$ref": "#/components/schemas/WebhookLastDelivery"
          },
          "observedGeneration": {
            "description": "ObservedGeneration is the spec generation the status reflects.",
            "format": "int64",
            "type": "integer"
          },
          "secretRotation": {
            "$ref": "#/components/schemas/WebhookSecretRotation"
          },
          "signingSecret": {
            "description": "SigningSecret is the whsec_ signing secret. It appears only in the create response and in a rotations response, never when the object is read again.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "WebhookLastDelivery": {
        "additionalProperties": false,
        "description": "WebhookLastDelivery is the latest delivery attempt of an endpoint.",
        "properties": {
          "attempt": {
            "description": "Attempt counts the attempts of this delivery so far.",
            "format": "int32",
            "type": "integer"
          },
          "eventType": {
            "description": "EventType is the event's type, such as job.succeeded.",
            "type": "string"
          },
          "statusCode": {
            "description": "StatusCode is the receiver's HTTP status; 0 when no response arrived.",
            "format": "int32",
            "type": "integer"
          },
          "time": {
            "description": "Time is when the attempt happened.",
            "type": "string"
          }
        },
        "required": [
          "time",
          "eventType",
          "statusCode",
          "attempt"
        ],
        "type": "object"
      },
      "WebhookSecretRotation": {
        "additionalProperties": false,
        "description": "WebhookSecretRotation describes a rotation in progress.",
        "properties": {
          "previousExpirationTime": {
            "description": "PreviousExpirationTime is when the rotated-out secret stops signing.",
            "type": "string"
          }
        },
        "required": [
          "previousExpirationTime"
        ],
        "type": "object"
      },
      "Workspace": {
        "additionalProperties": false,
        "description": "Workspace is a person's GPU or CPU development machine with SSH, VS Code in the browser or on the desktop, JupyterLab, a persistent home Volume and schedules. Each running period is a session, recorded as an Attempt with its receipt (`nodus get attempts -l nodus.dev/workspace=\u003cname\u003e`).",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ObjectMeta"
          },
          "spec": {
            "$ref": "#/components/schemas/WorkspaceSpec"
          },
          "status": {
            "$ref": "#/components/schemas/WorkspaceStatus"
          }
        },
        "type": "object",
        "x-kubernetes-group-version-kind": [
          {
            "group": "nodus.dev",
            "kind": "Workspace",
            "version": "v1"
          }
        ],
        "x-nodus-mcp": {
          "ExecTarget": true,
          "FilesTarget": true,
          "Requests": [
            "start"
          ],
          "States": [
            "Running",
            "Stopped"
          ],
          "Tools": null
        }
      },
      "WorkspaceConnect": {
        "additionalProperties": false,
        "description": "WorkspaceConnect says how to reach the Workspace.",
        "properties": {
          "jupyter": {
            "$ref": "#/components/schemas/WorkspaceURL"
          },
          "ssh": {
            "$ref": "#/components/schemas/WorkspaceSSHConnect"
          },
          "vscode": {
            "$ref": "#/components/schemas/WorkspaceURL"
          }
        },
        "type": "object"
      },
      "WorkspaceEndpoint": {
        "additionalProperties": false,
        "description": "WorkspaceEndpoint is one preview URL.",
        "properties": {
          "name": {
            "description": "Name is the tool or port name.",
            "type": "string"
          },
          "port": {
            "description": "Port is the container port.",
            "format": "int32",
            "type": "integer"
          },
          "url": {
            "description": "URL is the preview address.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "port",
          "url"
        ],
        "type": "object"
      },
      "WorkspaceHome": {
        "additionalProperties": false,
        "description": "WorkspaceHome is the saved state of the home directory.",
        "properties": {
          "revision": {
            "description": "Revision is the Volume revision the last stop committed; zero before the first save.",
            "format": "int64",
            "type": "integer"
          },
          "savedTime": {
            "description": "SavedTime is when that revision was committed.",
            "type": "string"
          },
          "volume": {
            "description": "Volume is the home Volume.",
            "type": "string"
          }
        },
        "required": [
          "volume"
        ],
        "type": "object"
      },
      "WorkspaceInput": {
        "additionalProperties": false,
        "description": "WorkspaceInput mounts a Workspace home.",
        "properties": {
          "name": {
            "description": "Name is the Workspace.",
            "type": "string"
          },
          "path": {
            "description": "Path is a subdirectory of the home.",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "WorkspaceList": {
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Workspace"
            },
            "type": "array"
          },
          "kind": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ListMeta"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "WorkspaceSSHConnect": {
        "additionalProperties": false,
        "description": "WorkspaceSSHConnect is the SSH entry of a Workspace.",
        "properties": {
          "command": {
            "description": "Command connects from a terminal.",
            "type": "string"
          },
          "host": {
            "description": "Host is \u003cname\u003e.\u003cproject\u003e.\u003corg\u003e.nodus, reached with `ProxyCommand nodus ssh-proxy %h`.",
            "type": "string"
          },
          "hostKey": {
            "description": "HostKey is the Workspace's SSH host key (ssh-ed25519 …); it stays the same across sessions, and `nodus ssh` pins it for the host.",
            "type": "string"
          }
        },
        "required": [
          "host",
          "command"
        ],
        "type": "object"
      },
      "WorkspaceSchedule": {
        "additionalProperties": false,
        "description": "WorkspaceSchedule is one working window: the Workspace is ready by readyBy and stops at stopAt.",
        "properties": {
          "readyBy": {
            "description": "ReadyBy is when the Workspace must be ready; it starts 15 minutes earlier. At least 15 minutes from now.",
            "type": "string"
          },
          "stopAt": {
            "description": "StopAt is when the Workspace stops; after readyBy.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "WorkspaceSession": {
        "additionalProperties": false,
        "description": "WorkspaceSession is the running session.",
        "properties": {
          "attempt": {
            "description": "Attempt is the session's Attempt.",
            "type": "string"
          },
          "offering": {
            "description": "Offering is the capacity the session runs on.",
            "type": "string"
          },
          "rateUSDPerHour": {
            "description": "RateUSDPerHour is the rate frozen for the session.",
            "type": "string"
          },
          "regionClass": {
            "description": "RegionClass is the region class of that capacity.",
            "type": "string"
          },
          "startTime": {
            "description": "StartTime is when the session's tools first answered; empty while starting.",
            "type": "string"
          }
        },
        "required": [
          "attempt"
        ],
        "type": "object"
      },
      "WorkspaceSessionReceipt": {
        "additionalProperties": false,
        "description": "WorkspaceSessionReceipt is what one finished session cost.",
        "properties": {
          "attempt": {
            "description": "Attempt is the session's Attempt.",
            "type": "string"
          },
          "billedSeconds": {
            "description": "BilledSeconds is the time charged, from supplier billing start to confirmed deletion.",
            "format": "int64",
            "type": "integer"
          },
          "chargeUSD": {
            "description": "ChargeUSD is what the session cost.",
            "type": "string"
          },
          "endTime": {
            "description": "EndTime is when its capacity was released.",
            "type": "string"
          },
          "startTime": {
            "description": "StartTime is when the session started.",
            "type": "string"
          },
          "stopReason": {
            "description": "StopReason is why the session ended.",
            "type": "string"
          }
        },
        "required": [
          "attempt",
          "billedSeconds"
        ],
        "type": "object"
      },
      "WorkspaceSpec": {
        "additionalProperties": false,
        "description": "WorkspaceSpec is the desired Workspace.",
        "properties": {
          "connections": {
            "description": "Connections inject their env and egress hosts (at most 4).",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "env": {
            "description": "Env sets environment variables (at most 256). The NODUS_ prefix is reserved.",
            "items": {
              "$ref": "#/components/schemas/EnvVar"
            },
            "nullable": true,
            "type": "array"
          },
          "ephemeral": {
            "description": "Ephemeral runs without a home Volume: local files are lost when the Workspace stops.",
            "type": "boolean"
          },
          "idleTimeout": {
            "description": "IdleTimeout stops the Workspace after this long with no SSH session, tool traffic or Process (default 1h; 0s never stops it for idleness; otherwise 10m to 24h).",
            "type": "string"
          },
          "image": {
            "description": "Image is the container image: a catalog image such as nodus/workspace-pytorch-cuda (the GPU default), nodus/workspace-cpu (the CPU default) or nodus/workspace-rocm, or your own image. It can change while the Workspace is stopped and applies on the next start.",
            "type": "string"
          },
          "imagePullSecrets": {
            "description": "ImagePullSecrets name Registry Secrets used to pull a private image (at most 4).",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "maxCostUSD": {
            "description": "MaxCostUSD stops the Workspace once its charges reach this amount; it may only be raised.",
            "type": "string"
          },
          "network": {
            "$ref": "#/components/schemas/Network"
          },
          "placement": {
            "$ref": "#/components/schemas/Placement"
          },
          "resources": {
            "$ref": "#/components/schemas/Resources"
          },
          "schedule": {
            "$ref": "#/components/schemas/WorkspaceSchedule"
          },
          "secrets": {
            "description": "Secrets mount Secrets as env vars and 0400 files under /run/secrets/\u003cname\u003e/\u003ckey\u003e (at most 32).",
            "items": {
              "$ref": "#/components/schemas/SecretMount"
            },
            "nullable": true,
            "type": "array"
          },
          "serviceAccountName": {
            "description": "ServiceAccountName governs calls made from inside the Workspace (default \"default\").",
            "type": "string"
          },
          "sshKeys": {
            "description": "SSHKeys names the SSHKeys that may log in; empty means every key of the org's members who may use this project (at most 100). Removing a key ends the sessions it opened.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "state": {
            "description": "State is Running (the default) or Stopped. Stopping saves /home/nodus and releases the machine.",
            "type": "string"
          },
          "tools": {
            "description": "Tools lists the tools to serve (default VSCode, Jupyter and SSH).",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "volume": {
            "description": "Volume is a ReadWriteOnce Volume mounted at /home/nodus and saved on every stop. Exactly one of volume and ephemeral: true.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "WorkspaceStatus": {
        "additionalProperties": false,
        "description": "WorkspaceStatus is the observed Workspace.",
        "properties": {
          "conditions": {
            "description": "Conditions are Scheduled, Funded, Ready, Stopped, NodeUnreachable, SetupComplete and StateSaved.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            },
            "nullable": true,
            "type": "array"
          },
          "connect": {
            "$ref": "#/components/schemas/WorkspaceConnect"
          },
          "cost": {
            "$ref": "#/components/schemas/Cost"
          },
          "endpoints": {
            "description": "Endpoints are the preview URLs of the browser tools.",
            "items": {
              "$ref": "#/components/schemas/WorkspaceEndpoint"
            },
            "nullable": true,
            "type": "array"
          },
          "estimate": {
            "$ref": "#/components/schemas/Estimate"
          },
          "handledRequests": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "HandledRequests records the request annotations already acted on.",
            "type": "object"
          },
          "home": {
            "$ref": "#/components/schemas/WorkspaceHome"
          },
          "lastActivityTime": {
            "description": "LastActivityTime is the last SSH session, tool request or Process seen; idleTimeout counts from it.",
            "type": "string"
          },
          "lastSession": {
            "$ref": "#/components/schemas/WorkspaceSessionReceipt"
          },
          "message": {
            "description": "Message explains the phase.",
            "type": "string"
          },
          "nextScheduledStartTime": {
            "description": "NextScheduledStartTime is when the schedule will next start the Workspace (15 minutes before readyBy).",
            "type": "string"
          },
          "observedGeneration": {
            "description": "ObservedGeneration is the spec generation this status reflects.",
            "format": "int64",
            "type": "integer"
          },
          "phase": {
            "description": "Phase is Pending, Starting, Running, Recovering, Stopping, Stopped, Terminating or Failed.",
            "type": "string"
          },
          "reason": {
            "description": "Reason is a machine-readable cause of the phase.",
            "type": "string"
          },
          "session": {
            "$ref": "#/components/schemas/WorkspaceSession"
          },
          "startEstimate": {
            "$ref": "#/components/schemas/DurationBand"
          },
          "stopByTime": {
            "description": "StopByTime is the funded edge while Funded is False: a money-driven stop commits the home until then and stops without the commit once it passes (ADR-086).",
            "type": "string"
          },
          "stopReason": {
            "description": "StopReason says why the Workspace is stopped; empty while it runs.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "WorkspaceURL": {
        "additionalProperties": false,
        "description": "WorkspaceURL is one browser tool's address.",
        "properties": {
          "url": {
            "description": "URL opens the tool.",
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      }
    }
  },
  "info": {
    "title": "Nodus API",
    "version": "nodus.dev/v1"
  },
  "openapi": "3.0.3",
  "paths": {
    "/apis/nodus.dev/v1/agentgroups": {
      "get": {
        "operationId": "listAllProjectsV1AgentGroup",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentGroupList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch agentgroups in every project",
        "tags": [
          "agentgroups"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "AgentGroup",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "AgentGroup",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "agentgroups:read",
          "tool": "get"
        },
        "x-nodus-scope": "agentgroups:read"
      }
    },
    "/apis/nodus.dev/v1/agentruns": {
      "get": {
        "operationId": "listAllProjectsV1AgentRun",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentRunList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch agentruns in every project",
        "tags": [
          "agentruns"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "AgentRun",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "AgentRun",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "agentruns:read",
          "tool": "get"
        },
        "x-nodus-scope": "agentruns:read"
      }
    },
    "/apis/nodus.dev/v1/agents": {
      "get": {
        "operationId": "listAllProjectsV1Agent",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch agents in every project",
        "tags": [
          "agents"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Agent",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Agent",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "agents:read",
          "tool": "get"
        },
        "x-nodus-scope": "agents:read"
      }
    },
    "/apis/nodus.dev/v1/apps": {
      "get": {
        "operationId": "listAllProjectsV1App",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AppList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch apps in every project",
        "tags": [
          "apps"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "App",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "App",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "apps:read",
          "tool": "get"
        },
        "x-nodus-scope": "apps:read"
      }
    },
    "/apis/nodus.dev/v1/attempts": {
      "get": {
        "operationId": "listAllProjectsV1Attempt",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttemptList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch attempts in every project",
        "tags": [
          "attempts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Attempt",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Attempt",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "attempts:read",
          "tool": "get"
        },
        "x-nodus-scope": "attempts:read"
      }
    },
    "/apis/nodus.dev/v1/budgets": {
      "get": {
        "operationId": "listV1Budget",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BudgetList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch budgets",
        "tags": [
          "budgets"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Budget",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Budget",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "billing:read",
          "tool": "get"
        },
        "x-nodus-scope": "billing:read"
      },
      "post": {
        "operationId": "createV1Budget",
        "parameters": [
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Budget"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Budget"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a Budget",
        "tags": [
          "budgets"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Budget",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Budget",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "billing:write",
          "tool": "apply"
        },
        "x-nodus-scope": "billing:write"
      }
    },
    "/apis/nodus.dev/v1/budgets/{name}": {
      "delete": {
        "operationId": "deleteV1Budget",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Budget"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a Budget",
        "tags": [
          "budgets"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Budget",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "Budget",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "billing:write",
          "tool": "delete"
        },
        "x-nodus-scope": "billing:write"
      },
      "get": {
        "operationId": "readV1Budget",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Budget"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Budget",
        "tags": [
          "budgets"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Budget",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Budget",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "billing:read",
          "tool": "get"
        },
        "x-nodus-scope": "billing:read"
      },
      "patch": {
        "operationId": "patchV1Budget",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Budget"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a Budget",
        "tags": [
          "budgets"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Budget",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Budget",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "billing:write",
          "tool": "apply"
        },
        "x-nodus-scope": "billing:write"
      },
      "put": {
        "operationId": "replaceV1Budget",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Budget"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Budget"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a Budget",
        "tags": [
          "budgets"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Budget",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Budget",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "billing:write",
          "tool": "apply"
        },
        "x-nodus-scope": "billing:write"
      }
    },
    "/apis/nodus.dev/v1/budgets/{name}/status": {
      "get": {
        "operationId": "readStatusV1Budget",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Budget"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a Budget",
        "tags": [
          "budgets"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Budget",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Budget",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "billing:read",
          "tool": "get"
        },
        "x-nodus-scope": "billing:read"
      }
    },
    "/apis/nodus.dev/v1/cloudaccounts": {
      "get": {
        "operationId": "listV1CloudAccount",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CloudAccountList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch cloudaccounts",
        "tags": [
          "cloudaccounts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "CloudAccount",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "CloudAccount",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "cloudaccounts:read",
          "tool": "get"
        },
        "x-nodus-scope": "cloudaccounts:read"
      },
      "post": {
        "operationId": "createV1CloudAccount",
        "parameters": [
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloudAccount"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CloudAccount"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a CloudAccount",
        "tags": [
          "cloudaccounts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "CloudAccount",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "CloudAccount",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "cloudaccounts:write",
          "tool": "apply"
        },
        "x-nodus-scope": "cloudaccounts:write"
      }
    },
    "/apis/nodus.dev/v1/cloudaccounts/{name}": {
      "delete": {
        "operationId": "deleteV1CloudAccount",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CloudAccount"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a CloudAccount",
        "tags": [
          "cloudaccounts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "CloudAccount",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "CloudAccount",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "cloudaccounts:write",
          "tool": "delete"
        },
        "x-nodus-scope": "cloudaccounts:write"
      },
      "get": {
        "operationId": "readV1CloudAccount",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CloudAccount"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a CloudAccount",
        "tags": [
          "cloudaccounts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "CloudAccount",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "CloudAccount",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "cloudaccounts:read",
          "tool": "get"
        },
        "x-nodus-scope": "cloudaccounts:read"
      },
      "patch": {
        "operationId": "patchV1CloudAccount",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CloudAccount"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a CloudAccount",
        "tags": [
          "cloudaccounts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "CloudAccount",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "CloudAccount",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "cloudaccounts:write",
          "tool": "apply"
        },
        "x-nodus-scope": "cloudaccounts:write"
      },
      "put": {
        "operationId": "replaceV1CloudAccount",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloudAccount"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CloudAccount"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a CloudAccount",
        "tags": [
          "cloudaccounts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "CloudAccount",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "CloudAccount",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "cloudaccounts:write",
          "tool": "apply"
        },
        "x-nodus-scope": "cloudaccounts:write"
      }
    },
    "/apis/nodus.dev/v1/cloudaccounts/{name}/status": {
      "get": {
        "operationId": "readStatusV1CloudAccount",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CloudAccount"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a CloudAccount",
        "tags": [
          "cloudaccounts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "CloudAccount",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "CloudAccount",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "cloudaccounts:read",
          "tool": "get"
        },
        "x-nodus-scope": "cloudaccounts:read"
      }
    },
    "/apis/nodus.dev/v1/connections": {
      "get": {
        "operationId": "listAllProjectsV1Connection",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch connections in every project",
        "tags": [
          "connections"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Connection",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Connection",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "connections:read",
          "tool": "get"
        },
        "x-nodus-scope": "connections:read"
      }
    },
    "/apis/nodus.dev/v1/creditgrants": {
      "get": {
        "operationId": "listV1CreditGrant",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreditGrantList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch creditgrants",
        "tags": [
          "creditgrants"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "CreditGrant",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "CreditGrant",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "billing:read",
          "tool": "get"
        },
        "x-nodus-scope": "billing:read"
      }
    },
    "/apis/nodus.dev/v1/creditgrants/{name}": {
      "get": {
        "operationId": "readV1CreditGrant",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreditGrant"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a CreditGrant",
        "tags": [
          "creditgrants"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "CreditGrant",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "CreditGrant",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "billing:read",
          "tool": "get"
        },
        "x-nodus-scope": "billing:read"
      }
    },
    "/apis/nodus.dev/v1/enrollmenttokens": {
      "get": {
        "operationId": "listAllProjectsV1EnrollmentToken",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrollmentTokenList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch enrollmenttokens in every project",
        "tags": [
          "enrollmenttokens"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "EnrollmentToken",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "EnrollmentToken",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "enrollmenttokens:read",
          "tool": "get"
        },
        "x-nodus-scope": "enrollmenttokens:read"
      }
    },
    "/apis/nodus.dev/v1/environments": {
      "get": {
        "operationId": "listAllProjectsV1Environment",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnvironmentList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch environments in every project",
        "tags": [
          "environments"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Environment",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Environment",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "environments:read",
          "tool": "get"
        },
        "x-nodus-scope": "environments:read"
      }
    },
    "/apis/nodus.dev/v1/functioncalls": {
      "get": {
        "operationId": "listAllProjectsV1FunctionCall",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FunctionCallList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch functioncalls in every project",
        "tags": [
          "functioncalls"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "FunctionCall",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "FunctionCall",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "functioncalls:read",
          "tool": "get"
        },
        "x-nodus-scope": "functioncalls:read"
      }
    },
    "/apis/nodus.dev/v1/functions": {
      "get": {
        "operationId": "listAllProjectsV1Function",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FunctionList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch functions in every project",
        "tags": [
          "functions"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Function",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Function",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "functions:read",
          "tool": "get"
        },
        "x-nodus-scope": "functions:read"
      }
    },
    "/apis/nodus.dev/v1/images": {
      "get": {
        "operationId": "listAllProjectsV1Image",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch images in every project",
        "tags": [
          "images"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Image",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Image",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "images:read",
          "tool": "get"
        },
        "x-nodus-scope": "images:read"
      }
    },
    "/apis/nodus.dev/v1/inferenceendpoints": {
      "get": {
        "operationId": "listAllProjectsV1InferenceEndpoint",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InferenceEndpointList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch inferenceendpoints in every project",
        "tags": [
          "inferenceendpoints"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "InferenceEndpoint",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "InferenceEndpoint",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "inferenceendpoints:read",
          "tool": "get"
        },
        "x-nodus-scope": "inferenceendpoints:read"
      }
    },
    "/apis/nodus.dev/v1/jobs": {
      "get": {
        "operationId": "listAllProjectsV1Job",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch jobs in every project",
        "tags": [
          "jobs"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Job",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Job",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "jobs:read",
          "tool": "get"
        },
        "x-nodus-scope": "jobs:read"
      }
    },
    "/apis/nodus.dev/v1/models": {
      "get": {
        "operationId": "listAllProjectsV1Model",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch models in every project",
        "tags": [
          "models"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Model",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Model",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "models:read",
          "tool": "get"
        },
        "x-nodus-scope": "models:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/agentgroups": {
      "get": {
        "operationId": "listV1AgentGroup",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentGroupList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch agentgroups",
        "tags": [
          "agentgroups"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "AgentGroup",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "AgentGroup",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "agentgroups:read",
          "tool": "get"
        },
        "x-nodus-scope": "agentgroups:read"
      },
      "post": {
        "operationId": "createV1AgentGroup",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentGroup"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentGroup"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a AgentGroup",
        "tags": [
          "agentgroups"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "AgentGroup",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "AgentGroup",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "agentgroups:write",
          "tool": "apply"
        },
        "x-nodus-scope": "agentgroups:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/agentgroups/{name}": {
      "delete": {
        "operationId": "deleteV1AgentGroup",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentGroup"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a AgentGroup",
        "tags": [
          "agentgroups"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "AgentGroup",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "AgentGroup",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "agentgroups:write",
          "tool": "delete"
        },
        "x-nodus-scope": "agentgroups:write"
      },
      "get": {
        "operationId": "readV1AgentGroup",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentGroup"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a AgentGroup",
        "tags": [
          "agentgroups"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "AgentGroup",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "AgentGroup",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "agentgroups:read",
          "tool": "get"
        },
        "x-nodus-scope": "agentgroups:read"
      },
      "patch": {
        "operationId": "patchV1AgentGroup",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentGroup"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a AgentGroup",
        "tags": [
          "agentgroups"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "AgentGroup",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "AgentGroup",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "agentgroups:write",
          "tool": "apply"
        },
        "x-nodus-scope": "agentgroups:write"
      },
      "put": {
        "operationId": "replaceV1AgentGroup",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentGroup"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentGroup"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a AgentGroup",
        "tags": [
          "agentgroups"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "AgentGroup",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "AgentGroup",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "agentgroups:write",
          "tool": "apply"
        },
        "x-nodus-scope": "agentgroups:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/agentgroups/{name}/status": {
      "get": {
        "operationId": "readStatusV1AgentGroup",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentGroup"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a AgentGroup",
        "tags": [
          "agentgroups"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "AgentGroup",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "AgentGroup",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "agentgroups:read",
          "tool": "get"
        },
        "x-nodus-scope": "agentgroups:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/agentruns": {
      "get": {
        "operationId": "listV1AgentRun",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentRunList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch agentruns",
        "tags": [
          "agentruns"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "AgentRun",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "AgentRun",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "agentruns:read",
          "tool": "get"
        },
        "x-nodus-scope": "agentruns:read"
      },
      "post": {
        "operationId": "createV1AgentRun",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentRun"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentRun"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a AgentRun",
        "tags": [
          "agentruns"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "AgentRun",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "AgentRun",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "agentruns:write",
          "tool": "apply"
        },
        "x-nodus-scope": "agentruns:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/agentruns/{name}": {
      "delete": {
        "operationId": "deleteV1AgentRun",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentRun"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a AgentRun",
        "tags": [
          "agentruns"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "AgentRun",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "AgentRun",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "agentruns:write",
          "tool": "delete"
        },
        "x-nodus-scope": "agentruns:write"
      },
      "get": {
        "operationId": "readV1AgentRun",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentRun"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a AgentRun",
        "tags": [
          "agentruns"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "AgentRun",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "AgentRun",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "agentruns:read",
          "tool": "get"
        },
        "x-nodus-scope": "agentruns:read"
      },
      "patch": {
        "operationId": "patchV1AgentRun",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentRun"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a AgentRun",
        "tags": [
          "agentruns"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "AgentRun",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "AgentRun",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "agentruns:write",
          "tool": "apply"
        },
        "x-nodus-scope": "agentruns:write"
      },
      "put": {
        "operationId": "replaceV1AgentRun",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentRun"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentRun"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a AgentRun",
        "tags": [
          "agentruns"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "AgentRun",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "AgentRun",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "agentruns:write",
          "tool": "apply"
        },
        "x-nodus-scope": "agentruns:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/agentruns/{name}/status": {
      "get": {
        "operationId": "readStatusV1AgentRun",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentRun"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a AgentRun",
        "tags": [
          "agentruns"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "AgentRun",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "AgentRun",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "agentruns:read",
          "tool": "get"
        },
        "x-nodus-scope": "agentruns:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/agents": {
      "get": {
        "operationId": "listV1Agent",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch agents",
        "tags": [
          "agents"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Agent",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Agent",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "agents:read",
          "tool": "get"
        },
        "x-nodus-scope": "agents:read"
      },
      "post": {
        "operationId": "createV1Agent",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Agent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Agent"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a Agent",
        "tags": [
          "agents"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Agent",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Agent",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "agents:write",
          "tool": "apply"
        },
        "x-nodus-scope": "agents:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/agents/{name}": {
      "delete": {
        "operationId": "deleteV1Agent",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Agent"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a Agent",
        "tags": [
          "agents"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Agent",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "Agent",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "agents:write",
          "tool": "delete"
        },
        "x-nodus-scope": "agents:write"
      },
      "get": {
        "operationId": "readV1Agent",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Agent"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Agent",
        "tags": [
          "agents"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Agent",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Agent",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "agents:read",
          "tool": "get"
        },
        "x-nodus-scope": "agents:read"
      },
      "patch": {
        "operationId": "patchV1Agent",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Agent"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a Agent",
        "tags": [
          "agents"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Agent",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Agent",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "agents:write",
          "tool": "apply"
        },
        "x-nodus-scope": "agents:write"
      },
      "put": {
        "operationId": "replaceV1Agent",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Agent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Agent"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a Agent",
        "tags": [
          "agents"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Agent",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Agent",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "agents:write",
          "tool": "apply"
        },
        "x-nodus-scope": "agents:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/agents/{name}/status": {
      "get": {
        "operationId": "readStatusV1Agent",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Agent"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a Agent",
        "tags": [
          "agents"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Agent",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Agent",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "agents:read",
          "tool": "get"
        },
        "x-nodus-scope": "agents:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/apps": {
      "get": {
        "operationId": "listV1App",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AppList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch apps",
        "tags": [
          "apps"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "App",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "App",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "apps:read",
          "tool": "get"
        },
        "x-nodus-scope": "apps:read"
      },
      "post": {
        "operationId": "createV1App",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/App"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/App"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a App",
        "tags": [
          "apps"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "App",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "App",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "apps:write",
          "tool": "apply"
        },
        "x-nodus-scope": "apps:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/apps/{name}": {
      "delete": {
        "operationId": "deleteV1App",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/App"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a App",
        "tags": [
          "apps"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "App",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "App",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "apps:write",
          "tool": "delete"
        },
        "x-nodus-scope": "apps:write"
      },
      "get": {
        "operationId": "readV1App",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/App"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a App",
        "tags": [
          "apps"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "App",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "App",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "apps:read",
          "tool": "get"
        },
        "x-nodus-scope": "apps:read"
      },
      "patch": {
        "operationId": "patchV1App",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/App"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a App",
        "tags": [
          "apps"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "App",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "App",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "apps:write",
          "tool": "apply"
        },
        "x-nodus-scope": "apps:write"
      },
      "put": {
        "operationId": "replaceV1App",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/App"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/App"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a App",
        "tags": [
          "apps"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "App",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "App",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "apps:write",
          "tool": "apply"
        },
        "x-nodus-scope": "apps:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/apps/{name}/status": {
      "get": {
        "operationId": "readStatusV1App",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/App"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a App",
        "tags": [
          "apps"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "App",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "App",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "apps:read",
          "tool": "get"
        },
        "x-nodus-scope": "apps:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/attempts": {
      "get": {
        "operationId": "listV1Attempt",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttemptList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch attempts",
        "tags": [
          "attempts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Attempt",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Attempt",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "attempts:read",
          "tool": "get"
        },
        "x-nodus-scope": "attempts:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/attempts/{name}": {
      "get": {
        "operationId": "readV1Attempt",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Attempt"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Attempt",
        "tags": [
          "attempts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Attempt",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Attempt",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "attempts:read",
          "tool": "get"
        },
        "x-nodus-scope": "attempts:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/connections": {
      "get": {
        "operationId": "listV1Connection",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch connections",
        "tags": [
          "connections"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Connection",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Connection",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "connections:read",
          "tool": "get"
        },
        "x-nodus-scope": "connections:read"
      },
      "post": {
        "operationId": "createV1Connection",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Connection"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a Connection",
        "tags": [
          "connections"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Connection",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Connection",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "connections:write",
          "tool": "apply"
        },
        "x-nodus-scope": "connections:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/connections/{name}": {
      "delete": {
        "operationId": "deleteV1Connection",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a Connection",
        "tags": [
          "connections"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Connection",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "Connection",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "connections:write",
          "tool": "delete"
        },
        "x-nodus-scope": "connections:write"
      },
      "get": {
        "operationId": "readV1Connection",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Connection",
        "tags": [
          "connections"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Connection",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Connection",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "connections:read",
          "tool": "get"
        },
        "x-nodus-scope": "connections:read"
      },
      "patch": {
        "operationId": "patchV1Connection",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a Connection",
        "tags": [
          "connections"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Connection",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Connection",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "connections:write",
          "tool": "apply"
        },
        "x-nodus-scope": "connections:write"
      },
      "put": {
        "operationId": "replaceV1Connection",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Connection"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a Connection",
        "tags": [
          "connections"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Connection",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Connection",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "connections:write",
          "tool": "apply"
        },
        "x-nodus-scope": "connections:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/connections/{name}/status": {
      "get": {
        "operationId": "readStatusV1Connection",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a Connection",
        "tags": [
          "connections"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Connection",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Connection",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "connections:read",
          "tool": "get"
        },
        "x-nodus-scope": "connections:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/enrollmenttokens": {
      "get": {
        "operationId": "listV1EnrollmentToken",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrollmentTokenList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch enrollmenttokens",
        "tags": [
          "enrollmenttokens"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "EnrollmentToken",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "EnrollmentToken",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "enrollmenttokens:read",
          "tool": "get"
        },
        "x-nodus-scope": "enrollmenttokens:read"
      },
      "post": {
        "operationId": "createV1EnrollmentToken",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnrollmentToken"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrollmentToken"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a EnrollmentToken",
        "tags": [
          "enrollmenttokens"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "EnrollmentToken",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "EnrollmentToken",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "enrollmenttokens:write",
          "tool": "apply"
        },
        "x-nodus-scope": "enrollmenttokens:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/enrollmenttokens/{name}": {
      "delete": {
        "operationId": "deleteV1EnrollmentToken",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrollmentToken"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a EnrollmentToken",
        "tags": [
          "enrollmenttokens"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "EnrollmentToken",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "EnrollmentToken",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "enrollmenttokens:write",
          "tool": "delete"
        },
        "x-nodus-scope": "enrollmenttokens:write"
      },
      "get": {
        "operationId": "readV1EnrollmentToken",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrollmentToken"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a EnrollmentToken",
        "tags": [
          "enrollmenttokens"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "EnrollmentToken",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "EnrollmentToken",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "enrollmenttokens:read",
          "tool": "get"
        },
        "x-nodus-scope": "enrollmenttokens:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/environments": {
      "get": {
        "operationId": "listV1Environment",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnvironmentList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch environments",
        "tags": [
          "environments"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Environment",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Environment",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "environments:read",
          "tool": "get"
        },
        "x-nodus-scope": "environments:read"
      },
      "post": {
        "operationId": "createV1Environment",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Environment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Environment"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a Environment",
        "tags": [
          "environments"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Environment",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Environment",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "environments:write",
          "tool": "apply"
        },
        "x-nodus-scope": "environments:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/environments/{name}": {
      "delete": {
        "operationId": "deleteV1Environment",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Environment"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a Environment",
        "tags": [
          "environments"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Environment",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "Environment",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "environments:write",
          "tool": "delete"
        },
        "x-nodus-scope": "environments:write"
      },
      "get": {
        "operationId": "readV1Environment",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Environment"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Environment",
        "tags": [
          "environments"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Environment",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Environment",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "environments:read",
          "tool": "get"
        },
        "x-nodus-scope": "environments:read"
      },
      "patch": {
        "operationId": "patchV1Environment",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Environment"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a Environment",
        "tags": [
          "environments"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Environment",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Environment",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "environments:write",
          "tool": "apply"
        },
        "x-nodus-scope": "environments:write"
      },
      "put": {
        "operationId": "replaceV1Environment",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Environment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Environment"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a Environment",
        "tags": [
          "environments"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Environment",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Environment",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "environments:write",
          "tool": "apply"
        },
        "x-nodus-scope": "environments:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/environments/{name}/status": {
      "get": {
        "operationId": "readStatusV1Environment",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Environment"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a Environment",
        "tags": [
          "environments"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Environment",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Environment",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "environments:read",
          "tool": "get"
        },
        "x-nodus-scope": "environments:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/functioncalls": {
      "get": {
        "operationId": "listV1FunctionCall",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FunctionCallList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch functioncalls",
        "tags": [
          "functioncalls"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "FunctionCall",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "FunctionCall",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "functioncalls:read",
          "tool": "get"
        },
        "x-nodus-scope": "functioncalls:read"
      },
      "post": {
        "operationId": "createV1FunctionCall",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FunctionCall"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FunctionCall"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a FunctionCall",
        "tags": [
          "functioncalls"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "FunctionCall",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "FunctionCall",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "functioncalls:write",
          "tool": "apply"
        },
        "x-nodus-scope": "functioncalls:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/functioncalls/{name}": {
      "delete": {
        "operationId": "deleteV1FunctionCall",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FunctionCall"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a FunctionCall",
        "tags": [
          "functioncalls"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "FunctionCall",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "FunctionCall",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "functioncalls:write",
          "tool": "delete"
        },
        "x-nodus-scope": "functioncalls:write"
      },
      "get": {
        "operationId": "readV1FunctionCall",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FunctionCall"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a FunctionCall",
        "tags": [
          "functioncalls"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "FunctionCall",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "FunctionCall",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "functioncalls:read",
          "tool": "get"
        },
        "x-nodus-scope": "functioncalls:read"
      },
      "patch": {
        "operationId": "patchV1FunctionCall",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FunctionCall"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a FunctionCall",
        "tags": [
          "functioncalls"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "FunctionCall",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "FunctionCall",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "functioncalls:write",
          "tool": "apply"
        },
        "x-nodus-scope": "functioncalls:write"
      },
      "put": {
        "operationId": "replaceV1FunctionCall",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FunctionCall"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FunctionCall"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a FunctionCall",
        "tags": [
          "functioncalls"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "FunctionCall",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "FunctionCall",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "functioncalls:write",
          "tool": "apply"
        },
        "x-nodus-scope": "functioncalls:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/functioncalls/{name}/status": {
      "get": {
        "operationId": "readStatusV1FunctionCall",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FunctionCall"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a FunctionCall",
        "tags": [
          "functioncalls"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "FunctionCall",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "FunctionCall",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "functioncalls:read",
          "tool": "get"
        },
        "x-nodus-scope": "functioncalls:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/functions": {
      "get": {
        "operationId": "listV1Function",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FunctionList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch functions",
        "tags": [
          "functions"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Function",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Function",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "functions:read",
          "tool": "get"
        },
        "x-nodus-scope": "functions:read"
      },
      "post": {
        "operationId": "createV1Function",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Function"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Function"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a Function",
        "tags": [
          "functions"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Function",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Function",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "functions:write",
          "tool": "apply"
        },
        "x-nodus-scope": "functions:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/functions/{name}": {
      "delete": {
        "operationId": "deleteV1Function",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Function"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a Function",
        "tags": [
          "functions"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Function",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "Function",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "functions:write",
          "tool": "delete"
        },
        "x-nodus-scope": "functions:write"
      },
      "get": {
        "operationId": "readV1Function",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Function"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Function",
        "tags": [
          "functions"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Function",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Function",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "functions:read",
          "tool": "get"
        },
        "x-nodus-scope": "functions:read"
      },
      "patch": {
        "operationId": "patchV1Function",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Function"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a Function",
        "tags": [
          "functions"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Function",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Function",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "functions:write",
          "tool": "apply"
        },
        "x-nodus-scope": "functions:write"
      },
      "put": {
        "operationId": "replaceV1Function",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Function"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Function"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a Function",
        "tags": [
          "functions"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Function",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Function",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "functions:write",
          "tool": "apply"
        },
        "x-nodus-scope": "functions:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/functions/{name}/status": {
      "get": {
        "operationId": "readStatusV1Function",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Function"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a Function",
        "tags": [
          "functions"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Function",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Function",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "functions:read",
          "tool": "get"
        },
        "x-nodus-scope": "functions:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/images": {
      "get": {
        "operationId": "listV1Image",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch images",
        "tags": [
          "images"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Image",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Image",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "images:read",
          "tool": "get"
        },
        "x-nodus-scope": "images:read"
      },
      "post": {
        "operationId": "createV1Image",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Image"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Image"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a Image",
        "tags": [
          "images"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Image",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Image",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "images:write",
          "tool": "apply"
        },
        "x-nodus-scope": "images:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/images/{name}": {
      "delete": {
        "operationId": "deleteV1Image",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Image"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a Image",
        "tags": [
          "images"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Image",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "Image",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "images:write",
          "tool": "delete"
        },
        "x-nodus-scope": "images:write"
      },
      "get": {
        "operationId": "readV1Image",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Image"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Image",
        "tags": [
          "images"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Image",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Image",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "images:read",
          "tool": "get"
        },
        "x-nodus-scope": "images:read"
      },
      "patch": {
        "operationId": "patchV1Image",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Image"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a Image",
        "tags": [
          "images"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Image",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Image",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "images:write",
          "tool": "apply"
        },
        "x-nodus-scope": "images:write"
      },
      "put": {
        "operationId": "replaceV1Image",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Image"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Image"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a Image",
        "tags": [
          "images"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Image",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Image",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "images:write",
          "tool": "apply"
        },
        "x-nodus-scope": "images:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/images/{name}/status": {
      "get": {
        "operationId": "readStatusV1Image",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Image"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a Image",
        "tags": [
          "images"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Image",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Image",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "images:read",
          "tool": "get"
        },
        "x-nodus-scope": "images:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/inferenceendpoints": {
      "get": {
        "operationId": "listV1InferenceEndpoint",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InferenceEndpointList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch inferenceendpoints",
        "tags": [
          "inferenceendpoints"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "InferenceEndpoint",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "InferenceEndpoint",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "inferenceendpoints:read",
          "tool": "get"
        },
        "x-nodus-scope": "inferenceendpoints:read"
      },
      "post": {
        "operationId": "createV1InferenceEndpoint",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InferenceEndpoint"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InferenceEndpoint"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a InferenceEndpoint",
        "tags": [
          "inferenceendpoints"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "InferenceEndpoint",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "InferenceEndpoint",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "inferenceendpoints:write",
          "tool": "apply"
        },
        "x-nodus-scope": "inferenceendpoints:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/inferenceendpoints/{name}": {
      "delete": {
        "operationId": "deleteV1InferenceEndpoint",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InferenceEndpoint"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a InferenceEndpoint",
        "tags": [
          "inferenceendpoints"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "InferenceEndpoint",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "InferenceEndpoint",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "inferenceendpoints:write",
          "tool": "delete"
        },
        "x-nodus-scope": "inferenceendpoints:write"
      },
      "get": {
        "operationId": "readV1InferenceEndpoint",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InferenceEndpoint"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a InferenceEndpoint",
        "tags": [
          "inferenceendpoints"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "InferenceEndpoint",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "InferenceEndpoint",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "inferenceendpoints:read",
          "tool": "get"
        },
        "x-nodus-scope": "inferenceendpoints:read"
      },
      "patch": {
        "operationId": "patchV1InferenceEndpoint",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InferenceEndpoint"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a InferenceEndpoint",
        "tags": [
          "inferenceendpoints"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "InferenceEndpoint",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "InferenceEndpoint",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "inferenceendpoints:write",
          "tool": "apply"
        },
        "x-nodus-scope": "inferenceendpoints:write"
      },
      "put": {
        "operationId": "replaceV1InferenceEndpoint",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InferenceEndpoint"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InferenceEndpoint"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a InferenceEndpoint",
        "tags": [
          "inferenceendpoints"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "InferenceEndpoint",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "InferenceEndpoint",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "inferenceendpoints:write",
          "tool": "apply"
        },
        "x-nodus-scope": "inferenceendpoints:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/inferenceendpoints/{name}/status": {
      "get": {
        "operationId": "readStatusV1InferenceEndpoint",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InferenceEndpoint"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a InferenceEndpoint",
        "tags": [
          "inferenceendpoints"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "InferenceEndpoint",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "InferenceEndpoint",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "inferenceendpoints:read",
          "tool": "get"
        },
        "x-nodus-scope": "inferenceendpoints:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/jobs": {
      "get": {
        "operationId": "listV1Job",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch jobs",
        "tags": [
          "jobs"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Job",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Job",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "jobs:read",
          "tool": "get"
        },
        "x-nodus-scope": "jobs:read"
      },
      "post": {
        "operationId": "createV1Job",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Job"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a Job",
        "tags": [
          "jobs"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Job",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Job",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "jobs:write",
          "tool": "apply"
        },
        "x-nodus-scope": "jobs:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/jobs/{name}": {
      "delete": {
        "operationId": "deleteV1Job",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a Job",
        "tags": [
          "jobs"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Job",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "Job",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "jobs:write",
          "tool": "delete"
        },
        "x-nodus-scope": "jobs:write"
      },
      "get": {
        "operationId": "readV1Job",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Job",
        "tags": [
          "jobs"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Job",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Job",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "jobs:read",
          "tool": "get"
        },
        "x-nodus-scope": "jobs:read"
      },
      "patch": {
        "operationId": "patchV1Job",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a Job",
        "tags": [
          "jobs"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Job",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Job",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "jobs:write",
          "tool": "apply"
        },
        "x-nodus-scope": "jobs:write"
      },
      "put": {
        "operationId": "replaceV1Job",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Job"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a Job",
        "tags": [
          "jobs"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Job",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Job",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "jobs:write",
          "tool": "apply"
        },
        "x-nodus-scope": "jobs:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/jobs/{name}/status": {
      "get": {
        "operationId": "readStatusV1Job",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a Job",
        "tags": [
          "jobs"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Job",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Job",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "jobs:read",
          "tool": "get"
        },
        "x-nodus-scope": "jobs:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/models": {
      "get": {
        "operationId": "listV1Model",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch models",
        "tags": [
          "models"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Model",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Model",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "models:read",
          "tool": "get"
        },
        "x-nodus-scope": "models:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/models/{name}": {
      "get": {
        "operationId": "readV1Model",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Model",
        "tags": [
          "models"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Model",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Model",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "models:read",
          "tool": "get"
        },
        "x-nodus-scope": "models:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/pipelines": {
      "get": {
        "operationId": "listV1Pipeline",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PipelineList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch pipelines",
        "tags": [
          "pipelines"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Pipeline",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Pipeline",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "jobs:read",
          "tool": "get"
        },
        "x-nodus-scope": "jobs:read"
      },
      "post": {
        "operationId": "createV1Pipeline",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Pipeline"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pipeline"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a Pipeline",
        "tags": [
          "pipelines"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Pipeline",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Pipeline",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "jobs:write",
          "tool": "apply"
        },
        "x-nodus-scope": "jobs:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/pipelines/{name}": {
      "delete": {
        "operationId": "deleteV1Pipeline",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pipeline"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a Pipeline",
        "tags": [
          "pipelines"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Pipeline",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "Pipeline",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "jobs:write",
          "tool": "delete"
        },
        "x-nodus-scope": "jobs:write"
      },
      "get": {
        "operationId": "readV1Pipeline",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pipeline"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Pipeline",
        "tags": [
          "pipelines"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Pipeline",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Pipeline",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "jobs:read",
          "tool": "get"
        },
        "x-nodus-scope": "jobs:read"
      },
      "patch": {
        "operationId": "patchV1Pipeline",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pipeline"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a Pipeline",
        "tags": [
          "pipelines"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Pipeline",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Pipeline",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "jobs:write",
          "tool": "apply"
        },
        "x-nodus-scope": "jobs:write"
      },
      "put": {
        "operationId": "replaceV1Pipeline",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Pipeline"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pipeline"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a Pipeline",
        "tags": [
          "pipelines"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Pipeline",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Pipeline",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "jobs:write",
          "tool": "apply"
        },
        "x-nodus-scope": "jobs:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/pipelines/{name}/status": {
      "get": {
        "operationId": "readStatusV1Pipeline",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pipeline"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a Pipeline",
        "tags": [
          "pipelines"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Pipeline",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Pipeline",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "jobs:read",
          "tool": "get"
        },
        "x-nodus-scope": "jobs:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/poolactions": {
      "get": {
        "operationId": "listV1PoolAction",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PoolActionList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch poolactions",
        "tags": [
          "poolactions"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "PoolAction",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "PoolAction",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "poolactions:read",
          "tool": "get"
        },
        "x-nodus-scope": "poolactions:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/poolactions/{name}": {
      "get": {
        "operationId": "readV1PoolAction",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PoolAction"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a PoolAction",
        "tags": [
          "poolactions"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "PoolAction",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "PoolAction",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "poolactions:read",
          "tool": "get"
        },
        "x-nodus-scope": "poolactions:read"
      },
      "patch": {
        "operationId": "patchV1PoolAction",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PoolAction"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a PoolAction",
        "tags": [
          "poolactions"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "PoolAction",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "PoolAction",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "poolactions:write",
          "tool": "apply"
        },
        "x-nodus-scope": "poolactions:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/pools": {
      "get": {
        "operationId": "listV1Pool",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PoolList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch pools",
        "tags": [
          "pools"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Pool",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Pool",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "pools:read",
          "tool": "get"
        },
        "x-nodus-scope": "pools:read"
      },
      "post": {
        "operationId": "createV1Pool",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Pool"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pool"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a Pool",
        "tags": [
          "pools"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Pool",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Pool",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "pools:write",
          "tool": "apply"
        },
        "x-nodus-scope": "pools:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/pools/{name}": {
      "delete": {
        "operationId": "deleteV1Pool",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pool"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a Pool",
        "tags": [
          "pools"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Pool",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "Pool",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "pools:write",
          "tool": "delete"
        },
        "x-nodus-scope": "pools:write"
      },
      "get": {
        "operationId": "readV1Pool",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pool"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Pool",
        "tags": [
          "pools"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Pool",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Pool",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "pools:read",
          "tool": "get"
        },
        "x-nodus-scope": "pools:read"
      },
      "patch": {
        "operationId": "patchV1Pool",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pool"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a Pool",
        "tags": [
          "pools"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Pool",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Pool",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "pools:write",
          "tool": "apply"
        },
        "x-nodus-scope": "pools:write"
      },
      "put": {
        "operationId": "replaceV1Pool",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Pool"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pool"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a Pool",
        "tags": [
          "pools"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Pool",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Pool",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "pools:write",
          "tool": "apply"
        },
        "x-nodus-scope": "pools:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/pools/{name}/status": {
      "get": {
        "operationId": "readStatusV1Pool",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pool"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a Pool",
        "tags": [
          "pools"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Pool",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Pool",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "pools:read",
          "tool": "get"
        },
        "x-nodus-scope": "pools:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/sandboxes": {
      "get": {
        "operationId": "listV1Sandbox",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch sandboxes",
        "tags": [
          "sandboxes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Sandbox",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Sandbox",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "sandboxes:read",
          "tool": "get"
        },
        "x-nodus-scope": "sandboxes:read"
      },
      "post": {
        "operationId": "createV1Sandbox",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Sandbox"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sandbox"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a Sandbox",
        "tags": [
          "sandboxes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Sandbox",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Sandbox",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "sandboxes:write",
          "tool": "apply"
        },
        "x-nodus-scope": "sandboxes:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/sandboxes/{name}": {
      "delete": {
        "operationId": "deleteV1Sandbox",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sandbox"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a Sandbox",
        "tags": [
          "sandboxes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Sandbox",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "Sandbox",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "sandboxes:write",
          "tool": "delete"
        },
        "x-nodus-scope": "sandboxes:write"
      },
      "get": {
        "operationId": "readV1Sandbox",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sandbox"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Sandbox",
        "tags": [
          "sandboxes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Sandbox",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Sandbox",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "sandboxes:read",
          "tool": "get"
        },
        "x-nodus-scope": "sandboxes:read"
      },
      "patch": {
        "operationId": "patchV1Sandbox",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sandbox"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a Sandbox",
        "tags": [
          "sandboxes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Sandbox",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Sandbox",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "sandboxes:write",
          "tool": "apply"
        },
        "x-nodus-scope": "sandboxes:write"
      },
      "put": {
        "operationId": "replaceV1Sandbox",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Sandbox"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sandbox"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a Sandbox",
        "tags": [
          "sandboxes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Sandbox",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Sandbox",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "sandboxes:write",
          "tool": "apply"
        },
        "x-nodus-scope": "sandboxes:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/sandboxes/{name}/status": {
      "get": {
        "operationId": "readStatusV1Sandbox",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sandbox"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a Sandbox",
        "tags": [
          "sandboxes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Sandbox",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Sandbox",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "sandboxes:read",
          "tool": "get"
        },
        "x-nodus-scope": "sandboxes:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/secrets": {
      "get": {
        "operationId": "listV1Secret",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecretList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch secrets",
        "tags": [
          "secrets"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Secret",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Secret",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "secrets:read",
          "tool": "get"
        },
        "x-nodus-scope": "secrets:read"
      },
      "post": {
        "operationId": "createV1Secret",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Secret"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Secret"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a Secret",
        "tags": [
          "secrets"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Secret",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Secret",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "secrets:write",
          "tool": "apply"
        },
        "x-nodus-scope": "secrets:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/secrets/{name}": {
      "delete": {
        "operationId": "deleteV1Secret",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Secret"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a Secret",
        "tags": [
          "secrets"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Secret",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "Secret",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "secrets:write",
          "tool": "delete"
        },
        "x-nodus-scope": "secrets:write"
      },
      "get": {
        "operationId": "readV1Secret",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Secret"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Secret",
        "tags": [
          "secrets"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Secret",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Secret",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "secrets:read",
          "tool": "get"
        },
        "x-nodus-scope": "secrets:read"
      },
      "patch": {
        "operationId": "patchV1Secret",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Secret"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a Secret",
        "tags": [
          "secrets"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Secret",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Secret",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "secrets:write",
          "tool": "apply"
        },
        "x-nodus-scope": "secrets:write"
      },
      "put": {
        "operationId": "replaceV1Secret",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Secret"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Secret"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a Secret",
        "tags": [
          "secrets"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Secret",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Secret",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "secrets:write",
          "tool": "apply"
        },
        "x-nodus-scope": "secrets:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/secrets/{name}/status": {
      "get": {
        "operationId": "readStatusV1Secret",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Secret"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a Secret",
        "tags": [
          "secrets"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Secret",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Secret",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "secrets:read",
          "tool": "get"
        },
        "x-nodus-scope": "secrets:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/serviceaccounts": {
      "get": {
        "operationId": "listV1ServiceAccount",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceAccountList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch serviceaccounts",
        "tags": [
          "serviceaccounts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "ServiceAccount",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "ServiceAccount",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "serviceaccounts:read",
          "tool": "get"
        },
        "x-nodus-scope": "serviceaccounts:read"
      },
      "post": {
        "operationId": "createV1ServiceAccount",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceAccount"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceAccount"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a ServiceAccount",
        "tags": [
          "serviceaccounts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "ServiceAccount",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "ServiceAccount",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "serviceaccounts:write",
          "tool": "apply"
        },
        "x-nodus-scope": "serviceaccounts:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/serviceaccounts/{name}": {
      "delete": {
        "operationId": "deleteV1ServiceAccount",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceAccount"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a ServiceAccount",
        "tags": [
          "serviceaccounts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "ServiceAccount",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "ServiceAccount",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "serviceaccounts:write",
          "tool": "delete"
        },
        "x-nodus-scope": "serviceaccounts:write"
      },
      "get": {
        "operationId": "readV1ServiceAccount",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceAccount"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a ServiceAccount",
        "tags": [
          "serviceaccounts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "ServiceAccount",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "ServiceAccount",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "serviceaccounts:read",
          "tool": "get"
        },
        "x-nodus-scope": "serviceaccounts:read"
      },
      "patch": {
        "operationId": "patchV1ServiceAccount",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceAccount"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a ServiceAccount",
        "tags": [
          "serviceaccounts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "ServiceAccount",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "ServiceAccount",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "serviceaccounts:write",
          "tool": "apply"
        },
        "x-nodus-scope": "serviceaccounts:write"
      },
      "put": {
        "operationId": "replaceV1ServiceAccount",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceAccount"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceAccount"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a ServiceAccount",
        "tags": [
          "serviceaccounts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "ServiceAccount",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "ServiceAccount",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "serviceaccounts:write",
          "tool": "apply"
        },
        "x-nodus-scope": "serviceaccounts:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/serviceaccounts/{name}/status": {
      "get": {
        "operationId": "readStatusV1ServiceAccount",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceAccount"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a ServiceAccount",
        "tags": [
          "serviceaccounts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "ServiceAccount",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "ServiceAccount",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "serviceaccounts:read",
          "tool": "get"
        },
        "x-nodus-scope": "serviceaccounts:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/sweeps": {
      "get": {
        "operationId": "listV1Sweep",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SweepList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch sweeps",
        "tags": [
          "sweeps"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Sweep",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Sweep",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "jobs:read",
          "tool": "get"
        },
        "x-nodus-scope": "jobs:read"
      },
      "post": {
        "operationId": "createV1Sweep",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Sweep"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sweep"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a Sweep",
        "tags": [
          "sweeps"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Sweep",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Sweep",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "jobs:write",
          "tool": "apply"
        },
        "x-nodus-scope": "jobs:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/sweeps/{name}": {
      "delete": {
        "operationId": "deleteV1Sweep",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sweep"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a Sweep",
        "tags": [
          "sweeps"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Sweep",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "Sweep",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "jobs:write",
          "tool": "delete"
        },
        "x-nodus-scope": "jobs:write"
      },
      "get": {
        "operationId": "readV1Sweep",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sweep"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Sweep",
        "tags": [
          "sweeps"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Sweep",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Sweep",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "jobs:read",
          "tool": "get"
        },
        "x-nodus-scope": "jobs:read"
      },
      "patch": {
        "operationId": "patchV1Sweep",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sweep"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a Sweep",
        "tags": [
          "sweeps"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Sweep",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Sweep",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "jobs:write",
          "tool": "apply"
        },
        "x-nodus-scope": "jobs:write"
      },
      "put": {
        "operationId": "replaceV1Sweep",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Sweep"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sweep"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a Sweep",
        "tags": [
          "sweeps"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Sweep",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Sweep",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "jobs:write",
          "tool": "apply"
        },
        "x-nodus-scope": "jobs:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/sweeps/{name}/status": {
      "get": {
        "operationId": "readStatusV1Sweep",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sweep"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a Sweep",
        "tags": [
          "sweeps"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Sweep",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Sweep",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "jobs:read",
          "tool": "get"
        },
        "x-nodus-scope": "jobs:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/volumes": {
      "get": {
        "operationId": "listV1Volume",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch volumes",
        "tags": [
          "volumes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Volume",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Volume",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "volumes:read",
          "tool": "get"
        },
        "x-nodus-scope": "volumes:read"
      },
      "post": {
        "operationId": "createV1Volume",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Volume"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Volume"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a Volume",
        "tags": [
          "volumes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Volume",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Volume",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "volumes:write",
          "tool": "apply"
        },
        "x-nodus-scope": "volumes:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/volumes/{name}": {
      "delete": {
        "operationId": "deleteV1Volume",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Volume"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a Volume",
        "tags": [
          "volumes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Volume",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "Volume",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "volumes:write",
          "tool": "delete"
        },
        "x-nodus-scope": "volumes:write"
      },
      "get": {
        "operationId": "readV1Volume",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Volume"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Volume",
        "tags": [
          "volumes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Volume",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Volume",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "volumes:read",
          "tool": "get"
        },
        "x-nodus-scope": "volumes:read"
      },
      "patch": {
        "operationId": "patchV1Volume",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Volume"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a Volume",
        "tags": [
          "volumes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Volume",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Volume",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "volumes:write",
          "tool": "apply"
        },
        "x-nodus-scope": "volumes:write"
      },
      "put": {
        "operationId": "replaceV1Volume",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Volume"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Volume"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a Volume",
        "tags": [
          "volumes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Volume",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Volume",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "volumes:write",
          "tool": "apply"
        },
        "x-nodus-scope": "volumes:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/volumes/{name}/status": {
      "get": {
        "operationId": "readStatusV1Volume",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Volume"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a Volume",
        "tags": [
          "volumes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Volume",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Volume",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "volumes:read",
          "tool": "get"
        },
        "x-nodus-scope": "volumes:read"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/workspaces": {
      "get": {
        "operationId": "listV1Workspace",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch workspaces",
        "tags": [
          "workspaces"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Workspace",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Workspace",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "workspaces:read",
          "tool": "get"
        },
        "x-nodus-scope": "workspaces:read"
      },
      "post": {
        "operationId": "createV1Workspace",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Workspace"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workspace"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a Workspace",
        "tags": [
          "workspaces"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Workspace",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Workspace",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "workspaces:write",
          "tool": "apply"
        },
        "x-nodus-scope": "workspaces:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/workspaces/{name}": {
      "delete": {
        "operationId": "deleteV1Workspace",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workspace"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a Workspace",
        "tags": [
          "workspaces"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Workspace",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "Workspace",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "workspaces:write",
          "tool": "delete"
        },
        "x-nodus-scope": "workspaces:write"
      },
      "get": {
        "operationId": "readV1Workspace",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workspace"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Workspace",
        "tags": [
          "workspaces"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Workspace",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Workspace",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "workspaces:read",
          "tool": "get"
        },
        "x-nodus-scope": "workspaces:read"
      },
      "patch": {
        "operationId": "patchV1Workspace",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workspace"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a Workspace",
        "tags": [
          "workspaces"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Workspace",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Workspace",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "workspaces:write",
          "tool": "apply"
        },
        "x-nodus-scope": "workspaces:write"
      },
      "put": {
        "operationId": "replaceV1Workspace",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Workspace"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workspace"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a Workspace",
        "tags": [
          "workspaces"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Workspace",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Workspace",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "workspaces:write",
          "tool": "apply"
        },
        "x-nodus-scope": "workspaces:write"
      }
    },
    "/apis/nodus.dev/v1/namespaces/{namespace}/workspaces/{name}/status": {
      "get": {
        "operationId": "readStatusV1Workspace",
        "parameters": [
          {
            "description": "The project.",
            "in": "path",
            "name": "namespace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workspace"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a Workspace",
        "tags": [
          "workspaces"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Workspace",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Workspace",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "workspaces:read",
          "tool": "get"
        },
        "x-nodus-scope": "workspaces:read"
      }
    },
    "/apis/nodus.dev/v1/nodes": {
      "get": {
        "operationId": "listV1Node",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NodeList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch nodes",
        "tags": [
          "nodes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Node",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Node",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "nodes:read",
          "tool": "get"
        },
        "x-nodus-scope": "nodes:read"
      }
    },
    "/apis/nodus.dev/v1/nodes/{name}": {
      "delete": {
        "operationId": "deleteV1Node",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Node"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a Node",
        "tags": [
          "nodes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Node",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "Node",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "nodes:write",
          "tool": "delete"
        },
        "x-nodus-scope": "nodes:write"
      },
      "get": {
        "operationId": "readV1Node",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Node"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Node",
        "tags": [
          "nodes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Node",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Node",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "nodes:read",
          "tool": "get"
        },
        "x-nodus-scope": "nodes:read"
      },
      "patch": {
        "operationId": "patchV1Node",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Node"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a Node",
        "tags": [
          "nodes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Node",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "Node",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "nodes:write",
          "tool": "apply"
        },
        "x-nodus-scope": "nodes:write"
      }
    },
    "/apis/nodus.dev/v1/offerings": {
      "get": {
        "operationId": "listV1Offering",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfferingList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch offerings",
        "tags": [
          "offerings"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Offering",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Offering",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "offerings:read",
          "tool": "get"
        },
        "x-nodus-scope": "offerings:read"
      }
    },
    "/apis/nodus.dev/v1/offerings/{name}": {
      "get": {
        "operationId": "readV1Offering",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Offering"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a Offering",
        "tags": [
          "offerings"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Offering",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Offering",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "offerings:read",
          "tool": "get"
        },
        "x-nodus-scope": "offerings:read"
      }
    },
    "/apis/nodus.dev/v1/pipelines": {
      "get": {
        "operationId": "listAllProjectsV1Pipeline",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PipelineList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch pipelines in every project",
        "tags": [
          "pipelines"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Pipeline",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Pipeline",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "jobs:read",
          "tool": "get"
        },
        "x-nodus-scope": "jobs:read"
      }
    },
    "/apis/nodus.dev/v1/poolactions": {
      "get": {
        "operationId": "listAllProjectsV1PoolAction",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PoolActionList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch poolactions in every project",
        "tags": [
          "poolactions"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "PoolAction",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "PoolAction",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "poolactions:read",
          "tool": "get"
        },
        "x-nodus-scope": "poolactions:read"
      }
    },
    "/apis/nodus.dev/v1/pools": {
      "get": {
        "operationId": "listAllProjectsV1Pool",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PoolList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch pools in every project",
        "tags": [
          "pools"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Pool",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Pool",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "pools:read",
          "tool": "get"
        },
        "x-nodus-scope": "pools:read"
      }
    },
    "/apis/nodus.dev/v1/sandboxes": {
      "get": {
        "operationId": "listAllProjectsV1Sandbox",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch sandboxes in every project",
        "tags": [
          "sandboxes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Sandbox",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Sandbox",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "sandboxes:read",
          "tool": "get"
        },
        "x-nodus-scope": "sandboxes:read"
      }
    },
    "/apis/nodus.dev/v1/secrets": {
      "get": {
        "operationId": "listAllProjectsV1Secret",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecretList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch secrets in every project",
        "tags": [
          "secrets"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Secret",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Secret",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "secrets:read",
          "tool": "get"
        },
        "x-nodus-scope": "secrets:read"
      }
    },
    "/apis/nodus.dev/v1/serviceaccounts": {
      "get": {
        "operationId": "listAllProjectsV1ServiceAccount",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceAccountList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch serviceaccounts in every project",
        "tags": [
          "serviceaccounts"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "ServiceAccount",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "ServiceAccount",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "serviceaccounts:read",
          "tool": "get"
        },
        "x-nodus-scope": "serviceaccounts:read"
      }
    },
    "/apis/nodus.dev/v1/sweeps": {
      "get": {
        "operationId": "listAllProjectsV1Sweep",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SweepList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch sweeps in every project",
        "tags": [
          "sweeps"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Sweep",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Sweep",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "jobs:read",
          "tool": "get"
        },
        "x-nodus-scope": "jobs:read"
      }
    },
    "/apis/nodus.dev/v1/topups": {
      "get": {
        "operationId": "listV1TopUp",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopUpList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch topups",
        "tags": [
          "topups"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "TopUp",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "TopUp",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "billing:read",
          "tool": "get"
        },
        "x-nodus-scope": "billing:read"
      },
      "post": {
        "operationId": "createV1TopUp",
        "parameters": [
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TopUp"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopUp"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a TopUp",
        "tags": [
          "topups"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "TopUp",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "TopUp",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "billing:write",
          "tool": "apply"
        },
        "x-nodus-scope": "billing:write"
      }
    },
    "/apis/nodus.dev/v1/topups/{name}": {
      "get": {
        "operationId": "readV1TopUp",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopUp"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a TopUp",
        "tags": [
          "topups"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "TopUp",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "TopUp",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "billing:read",
          "tool": "get"
        },
        "x-nodus-scope": "billing:read"
      }
    },
    "/apis/nodus.dev/v1/volumes": {
      "get": {
        "operationId": "listAllProjectsV1Volume",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch volumes in every project",
        "tags": [
          "volumes"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Volume",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Volume",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "volumes:read",
          "tool": "get"
        },
        "x-nodus-scope": "volumes:read"
      }
    },
    "/apis/nodus.dev/v1/webhookendpoints": {
      "get": {
        "operationId": "listV1WebhookEndpoint",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpointList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch webhookendpoints",
        "tags": [
          "webhookendpoints"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "WebhookEndpoint",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "WebhookEndpoint",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "webhookendpoints:read",
          "tool": "get"
        },
        "x-nodus-scope": "webhookendpoints:read"
      },
      "post": {
        "operationId": "createV1WebhookEndpoint",
        "parameters": [
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEndpoint"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpoint"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Create a WebhookEndpoint",
        "tags": [
          "webhookendpoints"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "WebhookEndpoint",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "WebhookEndpoint",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "webhookendpoints:write",
          "tool": "apply"
        },
        "x-nodus-scope": "webhookendpoints:write"
      }
    },
    "/apis/nodus.dev/v1/webhookendpoints/{name}": {
      "delete": {
        "operationId": "deleteV1WebhookEndpoint",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propagationPolicy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpoint"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Delete a WebhookEndpoint",
        "tags": [
          "webhookendpoints"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "WebhookEndpoint",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": true,
          "idempotentHint": true,
          "kind": "WebhookEndpoint",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "webhookendpoints:write",
          "tool": "delete"
        },
        "x-nodus-scope": "webhookendpoints:write"
      },
      "get": {
        "operationId": "readV1WebhookEndpoint",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpoint"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read a WebhookEndpoint",
        "tags": [
          "webhookendpoints"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "WebhookEndpoint",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "WebhookEndpoint",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "webhookendpoints:read",
          "tool": "get"
        },
        "x-nodus-scope": "webhookendpoints:read"
      },
      "patch": {
        "operationId": "patchV1WebhookEndpoint",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpoint"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Patch a WebhookEndpoint",
        "tags": [
          "webhookendpoints"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "WebhookEndpoint",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "WebhookEndpoint",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "webhookendpoints:write",
          "tool": "apply"
        },
        "x-nodus-scope": "webhookendpoints:write"
      },
      "put": {
        "operationId": "replaceV1WebhookEndpoint",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dryRun",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldManager",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEndpoint"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpoint"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Replace a WebhookEndpoint",
        "tags": [
          "webhookendpoints"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "WebhookEndpoint",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": true,
          "kind": "WebhookEndpoint",
          "openWorldHint": false,
          "readOnlyHint": false,
          "scope": "webhookendpoints:write",
          "tool": "apply"
        },
        "x-nodus-scope": "webhookendpoints:write"
      }
    },
    "/apis/nodus.dev/v1/webhookendpoints/{name}/status": {
      "get": {
        "operationId": "readStatusV1WebhookEndpoint",
        "parameters": [
          {
            "description": "The object's name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpoint"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "Read the status of a WebhookEndpoint",
        "tags": [
          "webhookendpoints"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "WebhookEndpoint",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "WebhookEndpoint",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "webhookendpoints:read",
          "tool": "get"
        },
        "x-nodus-scope": "webhookendpoints:read"
      }
    },
    "/apis/nodus.dev/v1/workspaces": {
      "get": {
        "operationId": "listAllProjectsV1Workspace",
        "parameters": [
          {
            "in": "query",
            "name": "labelSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fieldSelector",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "continue",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "watch",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resourceVersion",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowWatchBookmarks",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeoutSeconds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceList"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "An error: a metav1.Status whose reason is a registered code."
          }
        },
        "summary": "List or watch workspaces in every project",
        "tags": [
          "workspaces"
        ],
        "x-kubernetes-group-version-kind": {
          "group": "nodus.dev",
          "kind": "Workspace",
          "version": "v1"
        },
        "x-mcp": {
          "destructiveHint": false,
          "idempotentHint": false,
          "kind": "Workspace",
          "openWorldHint": false,
          "readOnlyHint": true,
          "scope": "workspaces:read",
          "tool": "get"
        },
        "x-nodus-scope": "workspaces:read"
      }
    }
  }
}
