{
    "swagger": "2.0",
    "info": {
        "contact": {},
        "license": {}
    },
    "paths": {
        "/": {
            "get": {
                "description": "get service info",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "service"
                ],
                "summary": "get service info",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.GetServiceInfoResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            }
        },
        "/addons": {
            "get": {
                "description": "Lists all addons installed in the cluster with their versions and status",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "upgrade-operation"
                ],
                "summary": "List cluster addons",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Kubernetes cluster name",
                        "name": "k8sClusterName",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Cloud region",
                        "name": "region",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Cloud provider (eks, gke, aks, ack, mock)",
                        "name": "cloudProvider",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.ListAddonsResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            }
        },
        "/alert-auth": {
            "put": {
                "description": "Updates basic auth credentials for both alertmanager and kube-prometheus-stack HelmReleases using fail-fast approach",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ops"
                ],
                "summary": "update basic auth credentials for alertmanager and kube-prometheus-stack",
                "parameters": [
                    {
                        "description": "update basic auth request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/message.UpdateBasicAuthReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Basic auth credentials updated successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.UpdateBasicAuthResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "500": {
                        "description": "Basic auth update failed (30004)",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            }
        },
        "/health": {
            "get": {
                "description": "get service health",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "service"
                ],
                "summary": "get service health",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.GetServiceHealthResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            }
        },
        "/helmreleases": {
            "get": {
                "description": "Lists all HelmRelease custom resources, optionally filtered by namespace",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "helmrelease"
                ],
                "summary": "List HelmRelease CRs",
                "parameters": [
                    {
                        "type": "string",
                        "description": "namespace to filter by",
                        "name": "namespace",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "continueToken",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "limit",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.ListHelmReleasesResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            },
            "post": {
                "description": "Creates a new HelmRelease custom resource in the specified namespace",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "helmrelease"
                ],
                "summary": "create a HelmRelease CR",
                "parameters": [
                    {
                        "description": "create HelmRelease request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/message.CreateHelmReleaseReq"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.CreateHelmReleaseResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            }
        },
        "/helmreleases/diff": {
            "post": {
                "description": "Compares requested HelmRelease desired state with live state and returns drift/adoption guard information",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "helmrelease"
                ],
                "summary": "diff a HelmRelease desired state",
                "parameters": [
                    {
                        "description": "diff HelmRelease request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/message.DiffHelmReleaseReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.DiffHelmReleaseResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            }
        },
        "/helmreleases/{name}": {
            "get": {
                "description": "Retrieves the details of a specific HelmRelease custom resource",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "helmrelease"
                ],
                "summary": "get HelmRelease CR details",
                "parameters": [
                    {
                        "type": "string",
                        "description": "HelmRelease name",
                        "name": "name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.GetHelmReleaseResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            },
            "put": {
                "description": "Updates the configuration of an existing HelmRelease custom resource",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "helmrelease"
                ],
                "summary": "update HelmRelease CR",
                "parameters": [
                    {
                        "type": "string",
                        "description": "HelmRelease name",
                        "name": "name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "update HelmRelease request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/message.UpdateHelmReleaseReq"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.UpdateHelmReleaseResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            },
            "delete": {
                "description": "Deletes a HelmRelease custom resource and triggers the associated Helm uninstall",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "helmrelease"
                ],
                "summary": "delete HelmRelease CR",
                "parameters": [
                    {
                        "type": "string",
                        "description": "HelmRelease namespace",
                        "name": "namespace",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "HelmRelease name",
                        "name": "name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.DeleteHelmReleaseResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            }
        },
        "/nodeGroups": {
            "get": {
                "description": "Lists all node groups for a cluster with their Kubernetes versions",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "upgrade-operation"
                ],
                "summary": "Get all node groups and their versions",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Kubernetes cluster name",
                        "name": "k8sClusterName",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Cloud region",
                        "name": "region",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Cloud provider (eks, gke, aks, ack, mock)",
                        "name": "cloudProvider",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.GetNodeGroupsResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            }
        },
        "/upgradeOperations": {
            "get": {
                "description": "Lists all cluster upgrade operations with optional filtering",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "upgrade-operation"
                ],
                "summary": "List upgrade operations",
                "parameters": [
                    {
                        "type": "string",
                        "name": "continueToken",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "k8sClusterName",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "status",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.ListClusterUpgradesResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            },
            "post": {
                "description": "Creates a new Kubernetes cluster upgrade operation with step-based execution",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "upgrade-operation"
                ],
                "summary": "Create an upgrade operation",
                "parameters": [
                    {
                        "description": "create cluster upgrade request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/message.CreateClusterUpgradeReq"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.CreateClusterUpgradeResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            }
        },
        "/upgradeOperations/dry-run": {
            "post": {
                "description": "Dry-runs a cluster upgrade request and returns the ClusterUpgradeOperation CR that would be created without actually creating it",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "upgrade-operation"
                ],
                "summary": "Dry-run an upgrade operation",
                "parameters": [
                    {
                        "description": "create cluster upgrade request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/message.CreateClusterUpgradeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.DryRunClusterUpgradeResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            }
        },
        "/upgradeOperations/{id}": {
            "get": {
                "description": "Retrieves the details of a specific cluster upgrade operation",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "upgrade-operation"
                ],
                "summary": "Get upgrade operation details",
                "parameters": [
                    {
                        "type": "string",
                        "description": "upgrade operation ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.GetClusterUpgradeResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            },
            "delete": {
                "description": "Deletes/cancels a cluster upgrade operation",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "upgrade-operation"
                ],
                "summary": "Delete an upgrade operation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "upgrade operation ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.DeleteClusterUpgradeResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            }
        },
        "/upgradeOperations/{id}/pause": {
            "put": {
                "description": "Pauses a running cluster upgrade operation",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "upgrade-operation"
                ],
                "summary": "Pause an upgrade operation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "upgrade operation ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.PauseClusterUpgradeResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            }
        },
        "/upgradeOperations/{id}/resume": {
            "put": {
                "description": "Resumes a paused cluster upgrade operation",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "upgrade-operation"
                ],
                "summary": "Resume a paused upgrade operation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "upgrade operation ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.ResumeClusterUpgradeResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            }
        },
        "/vmclusters": {
            "get": {
                "description": "Lists all deployed VictoriaMetrics clusters managed by the Ops API Server",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "vmcluster"
                ],
                "summary": "List VM Clusters",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Current page location",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Number of this request",
                        "name": "pageSize",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.ListVMClustersResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            },
            "post": {
                "description": "Deploys a new VictoriaMetrics cluster by creating a new Helm release",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "vmcluster"
                ],
                "summary": "deploy victoriametrics cluster",
                "parameters": [
                    {
                        "description": "create VM cluster request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/message.CreateVMClusterReq"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.CreateVMClusterResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            }
        },
        "/vmclusters/{vmclusterId}": {
            "get": {
                "description": "Retrieves the details of a specific VictoriaMetrics cluster",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "vmcluster"
                ],
                "summary": "get VM cluster details",
                "parameters": [
                    {
                        "type": "string",
                        "description": "VM cluster ID",
                        "name": "vmclusterId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.GetVMClusterResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            },
            "put": {
                "description": "Updates the configuration of an existing VictoriaMetrics cluster by performing a Helm upgrade",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "vmcluster"
                ],
                "summary": "change vm cluster",
                "parameters": [
                    {
                        "type": "string",
                        "description": "VM cluster ID",
                        "name": "vmclusterId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "update VM cluster request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/message.UpdateVMClusterReq"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.UpdateVMClusterResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            },
            "delete": {
                "description": "Deletes a VictoriaMetrics cluster by uninstalling the associated Helm release",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "vmcluster"
                ],
                "summary": "Uninstall the VM cluster",
                "parameters": [
                    {
                        "type": "string",
                        "description": "VM cluster ID",
                        "name": "vmclusterId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/message.Result"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/message.DeleteVMClusterResp"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/message.Result"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "message.AddonInfo": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "message.AddonUpgradeConfig": {
            "type": "object",
            "required": [
                "name",
                "version"
            ],
            "properties": {
                "configurationValues": {
                    "description": "ConfigurationValues is a string containing the set of configuration values for the add-on.\nValues are validated against the schema returned by DescribeAddonConfiguration.",
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "resolveConflicts": {
                    "description": "ResolveConflicts specifies how to handle field value conflicts if you've changed a value from the AWS EKS default.\nNONE means AWS EKS doesn't change the value (update might fail)\nOVERWRITE means AWS EKS overwrites the changed value back to the default\nPRESERVE means AWS EKS preserves the changed value",
                    "type": "string"
                },
                "serviceAccountRoleArn": {
                    "description": "ServiceAccountRoleArn is the Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account.\nThe role must have the IAM permissions required by the add-on.",
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "message.ClusterUpgradeSummary": {
            "type": "object",
            "properties": {
                "beginTime": {
                    "type": "string"
                },
                "cloudProvider": {
                    "type": "string"
                },
                "currentVersion": {
                    "type": "string"
                },
                "endTime": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "k8sClusterName": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "targetVersion": {
                    "type": "string"
                }
            }
        },
        "message.CreateClusterUpgradeReq": {
            "type": "object",
            "required": [
                "cloudProvider",
                "k8sClusterName",
                "region",
                "targetVersion"
            ],
            "properties": {
                "cloudProvider": {
                    "description": "CloudProvider is the cloud provider type (eks, gke, aks, ack, mock)",
                    "type": "string"
                },
                "clusterAddons": {
                    "description": "ClusterAddons is the list of addons to upgrade",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/message.AddonUpgradeConfig"
                    }
                },
                "k8sClusterName": {
                    "description": "K8sClusterName is the name of the target Kubernetes cluster",
                    "type": "string"
                },
                "nodeGroupUpgrades": {
                    "description": "NodeGroupUpgrade configures node group upgrade with node group name and strategy bound together",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/message.NodeGroupUpgradeConfig"
                    }
                },
                "region": {
                    "description": "Region is the cloud region where the cluster is located",
                    "type": "string"
                },
                "schedule": {
                    "description": "Schedule is the time to start the upgrade (optional, defaults to now)",
                    "type": "string"
                },
                "targetVersion": {
                    "description": "TargetVersion is the target K8s version to upgrade to",
                    "type": "string"
                }
            }
        },
        "message.CreateClusterUpgradeResp": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "message.CreateHelmReleaseReq": {
            "type": "object",
            "required": [
                "component",
                "name",
                "namespace"
            ],
            "properties": {
                "component": {
                    "description": "Pre-defined component name (e.g., \"loki-ha\", \"kube-prometheus-stack\")",
                    "type": "string"
                },
                "config": {
                    "type": "object",
                    "$ref": "#/definitions/message.HelmReleaseConfig"
                },
                "name": {
                    "description": "Name is the name of the HelmRelease, it will be used as the release name",
                    "type": "string"
                },
                "namespace": {
                    "description": "Namespace is the namespace of the HelmRelease, it will be used as the target namespace",
                    "type": "string"
                }
            }
        },
        "message.CreateHelmReleaseResp": {
            "type": "object",
            "properties": {
                "component": {
                    "type": "string"
                },
                "config": {
                    "type": "object",
                    "$ref": "#/definitions/message.HelmReleaseConfig"
                },
                "createTime": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "status": {
                    "type": "object",
                    "$ref": "#/definitions/message.HelmReleaseStatusSummary"
                }
            }
        },
        "message.CreateVMClusterReq": {
            "type": "object",
            "required": [
                "name",
                "values"
            ],
            "properties": {
                "name": {
                    "type": "string"
                },
                "values": {
                    "type": "object",
                    "additionalProperties": true
                }
            }
        },
        "message.CreateVMClusterResp": {
            "type": "object",
            "properties": {
                "create_time": {
                    "type": "string"
                },
                "endpoints": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "helm_release_info": {
                    "type": "object",
                    "$ref": "#/definitions/message.HelmReleaseInfo"
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "values": {
                    "type": "object",
                    "additionalProperties": true
                }
            }
        },
        "message.DeleteClusterUpgradeResp": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "message.DeleteHelmReleaseResp": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "message.DeleteVMClusterResp": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "message.DiffHelmReleaseReq": {
            "type": "object",
            "required": [
                "component",
                "name",
                "namespace"
            ],
            "properties": {
                "adoptionMode": {
                    "type": "boolean"
                },
                "component": {
                    "type": "string"
                },
                "config": {
                    "type": "object",
                    "$ref": "#/definitions/message.HelmReleaseConfig"
                },
                "name": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                }
            }
        },
        "message.DiffHelmReleaseResp": {
            "type": "object",
            "properties": {
                "blockingReasons": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "component": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "renderedDiff": {
                    "type": "object",
                    "$ref": "#/definitions/message.HelmReleaseRenderedDiff"
                },
                "safeToApply": {
                    "type": "boolean"
                },
                "sourceResolution": {
                    "type": "object",
                    "$ref": "#/definitions/message.HelmReleaseSourceResolution"
                },
                "warnings": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "message.DryRunClusterUpgradeResp": {
            "type": "object",
            "properties": {
                "clusterUpgradeOperation": {
                    "type": "object",
                    "$ref": "#/definitions/v1.ClusterUpgradeOperation"
                }
            }
        },
        "message.GetClusterUpgradeResp": {
            "type": "object",
            "properties": {
                "beginTime": {
                    "type": "string"
                },
                "cloudProvider": {
                    "type": "string"
                },
                "currentStep": {
                    "type": "object",
                    "$ref": "#/definitions/message.StepStatus"
                },
                "currentVersion": {
                    "type": "string"
                },
                "duration": {
                    "type": "string"
                },
                "endTime": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "k8sClusterName": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "nextSteps": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/message.StepStatus"
                    }
                },
                "region": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "succeededSteps": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/message.StepStatus"
                    }
                },
                "targetVersion": {
                    "type": "string"
                }
            }
        },
        "message.GetHelmReleaseResp": {
            "type": "object",
            "properties": {
                "component": {
                    "type": "string"
                },
                "config": {
                    "type": "object",
                    "$ref": "#/definitions/message.HelmReleaseConfig"
                },
                "createTime": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "status": {
                    "type": "object",
                    "$ref": "#/definitions/message.HelmReleaseStatusSummary"
                },
                "updateTime": {
                    "type": "string"
                }
            }
        },
        "message.GetNodeGroupsResp": {
            "type": "object",
            "properties": {
                "nodeGroups": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/message.NodeGroupInfo"
                    }
                }
            }
        },
        "message.GetServiceHealthResp": {
            "type": "object",
            "properties": {
                "serviceHealth": {
                    "type": "boolean"
                }
            }
        },
        "message.GetServiceInfoResp": {
            "type": "object",
            "properties": {
                "availableSpecs": {
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/k8sv1.ResourceRequirements"
                    }
                },
                "serviceName": {
                    "type": "string"
                }
            }
        },
        "message.GetVMClusterResp": {
            "type": "object",
            "properties": {
                "create_time": {
                    "type": "string"
                },
                "endpoints": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "helm_release_info": {
                    "type": "object",
                    "$ref": "#/definitions/message.HelmReleaseInfo"
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "update_time": {
                    "type": "string"
                },
                "values": {
                    "type": "object",
                    "additionalProperties": true
                }
            }
        },
        "message.HelmReleaseConfig": {
            "type": "object",
            "properties": {
                "dependsOn": {
                    "description": "Names of HelmReleases this depends on",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "expectedDigest": {
                    "description": "Expected chart digest",
                    "type": "string"
                },
                "interval": {
                    "description": "Interval for reconciliation (e.g., \"5m\")",
                    "type": "string"
                },
                "sourceRef": {
                    "description": "Reference to Helm repository",
                    "type": "object",
                    "$ref": "#/definitions/message.HelmReleaseSourceRef"
                },
                "suspend": {
                    "description": "Whether to suspend reconciliation",
                    "type": "boolean"
                },
                "timeout": {
                    "description": "Timeout for operations (e.g., \"5m\")",
                    "type": "string"
                },
                "values": {
                    "description": "Chart values override",
                    "type": "object",
                    "additionalProperties": true
                },
                "version": {
                    "description": "Version of the chart to install",
                    "type": "string"
                }
            }
        },
        "message.HelmReleaseConfigSummary": {
            "type": "object",
            "properties": {
                "dependsOn": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "suspend": {
                    "type": "boolean"
                },
                "targetNamespace": {
                    "type": "string"
                }
            }
        },
        "message.HelmReleaseInfo": {
            "type": "object",
            "properties": {
                "chart": {
                    "type": "string"
                },
                "release_name": {
                    "type": "string"
                },
                "release_namespace": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "message.HelmReleaseRenderedDiff": {
            "type": "object",
            "properties": {
                "changed": {
                    "type": "boolean"
                },
                "output": {
                    "type": "string"
                },
                "resolvedDigest": {
                    "type": "string"
                }
            }
        },
        "message.HelmReleaseSourceRef": {
            "type": "object",
            "properties": {
                "kind": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "message.HelmReleaseSourceResolution": {
            "type": "object",
            "properties": {
                "chart": {
                    "type": "string"
                },
                "expectedDigest": {
                    "type": "string"
                },
                "resolvedDigest": {
                    "type": "string"
                },
                "sourceKind": {
                    "type": "string"
                },
                "sourceName": {
                    "type": "string"
                },
                "sourceNamespace": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "message.HelmReleaseStatusSummary": {
            "type": "object",
            "properties": {
                "expectedDigest": {
                    "type": "string"
                },
                "failures": {
                    "type": "integer"
                },
                "helmChart": {
                    "type": "string"
                },
                "lastAppliedRevision": {
                    "type": "string"
                },
                "lastAttemptedRevision": {
                    "type": "string"
                },
                "lastFailureReason": {
                    "type": "string"
                },
                "lastReleaseRevision": {
                    "type": "integer"
                },
                "observedGeneration": {
                    "type": "integer"
                },
                "requestedVersion": {
                    "type": "string"
                },
                "resolvedDigest": {
                    "type": "string"
                }
            }
        },
        "message.HelmReleaseSummary": {
            "type": "object",
            "properties": {
                "component": {
                    "type": "string"
                },
                "config": {
                    "type": "object",
                    "$ref": "#/definitions/message.HelmReleaseConfigSummary"
                },
                "createTime": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "status": {
                    "type": "object",
                    "$ref": "#/definitions/message.HelmReleaseStatusSummary"
                },
                "updateTime": {
                    "type": "string"
                }
            }
        },
        "message.ListAddonsResp": {
            "type": "object",
            "properties": {
                "addons": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/message.AddonInfo"
                    }
                }
            }
        },
        "message.ListClusterUpgradesReq": {
            "type": "object",
            "properties": {
                "continueToken": {
                    "type": "string"
                },
                "k8sClusterName": {
                    "type": "string"
                },
                "limit": {
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "message.ListClusterUpgradesResp": {
            "type": "object",
            "properties": {
                "clusterUpgrades": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/message.ClusterUpgradeSummary"
                    }
                },
                "continueToken": {
                    "type": "string"
                },
                "remainingItemCount": {
                    "type": "integer"
                }
            }
        },
        "message.ListHelmReleasesReq": {
            "type": "object",
            "properties": {
                "continueToken": {
                    "type": "string"
                },
                "limit": {
                    "type": "integer"
                }
            }
        },
        "message.ListHelmReleasesResp": {
            "type": "object",
            "properties": {
                "continueToken": {
                    "type": "string"
                },
                "helmReleases": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/message.HelmReleaseSummary"
                    }
                },
                "remainingItemCount": {
                    "type": "integer"
                }
            }
        },
        "message.ListVMClustersReq": {
            "type": "object",
            "properties": {
                "page": {
                    "description": "Current page location",
                    "type": "integer"
                },
                "pageSize": {
                    "description": "Number of this request",
                    "type": "integer"
                }
            }
        },
        "message.ListVMClustersResp": {
            "type": "object",
            "properties": {
                "continueToken": {
                    "type": "string"
                },
                "remainingItemCount": {
                    "type": "integer"
                },
                "vmclusters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/message.VMClusterSummary"
                    }
                }
            }
        },
        "message.NodeGroupInfo": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "launchTemplateId": {
                    "description": "LaunchTemplateId is set for EKS node groups that use a launch template with an ID.",
                    "type": "string"
                },
                "launchTemplateName": {
                    "description": "LaunchTemplateName is set for EKS node groups that use a launch template with a name.",
                    "type": "string"
                },
                "launchTemplateVersion": {
                    "description": "LaunchTemplateVersion is set for EKS node groups that use a launch template.",
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "nodeCount": {
                    "type": "integer"
                },
                "runtimeVersion": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "message.NodeGroupUpgradeConfig": {
            "type": "object",
            "required": [
                "nodeGroupName",
                "requiresVMStorageRollout",
                "strategy"
            ],
            "properties": {
                "launchTemplateId": {
                    "description": "LaunchTemplateId identifies the EKS launch template to use for the in-place upgrade.",
                    "type": "string"
                },
                "launchTemplateName": {
                    "description": "LaunchTemplateName identifies the EKS launch template when launchTemplateId is not provided.",
                    "type": "string"
                },
                "launchTemplateVersion": {
                    "description": "LaunchTemplateVersion is required for EKS in-place upgrades when the node group's launch template specifies a custom AMI.",
                    "type": "string"
                },
                "newNodeGroupName": {
                    "description": "NewNodeGroupName is the name for the new node group in blue-green upgrade. Optional; if empty, a random 8-char lowercase name is used.",
                    "type": "string"
                },
                "nodeGroupName": {
                    "description": "NodeGroupName is the name of the node group to upgrade",
                    "type": "string"
                },
                "requiresVMStorageRollout": {
                    "description": "RequiresVMStorageRollout indicates if this blue-green node group upgrade should trigger the VMStorage rollout flow",
                    "type": "boolean",
                    "default": false
                },
                "runtimeType": {
                    "description": "RuntimeType is the current Kubernetes runtime type of the node group",
                    "type": "string"
                },
                "strategy": {
                    "description": "Strategy is the upgrade strategy for nodegroups (\"blue-green\" or \"in-place\")",
                    "type": "string"
                },
                "targetRuntimeVersion": {
                    "description": "TargetRuntimeVersion is the target Kubernetes runtime version to upgrade to",
                    "type": "string"
                },
                "vmClusterHelmValues": {
                    "description": "VMClusterHelmValues contains a VMCluster.spec overlay to apply during VMStorage rollout.\nUse an empty object when the rollout should not change VMCluster spec.",
                    "type": "object",
                    "additionalProperties": true
                },
                "vmstorageSTSName": {
                    "description": "VMStorageSTSName is the name of the vmstorage StatefulSet to observe rollout status",
                    "type": "string",
                    "default": "vmstorage-vmcluster"
                },
                "vmstorageSTSNamespace": {
                    "description": "VMStorageSTSNamespace is the namespace of the vmstorage StatefulSet to observe rollout status",
                    "type": "string",
                    "default": "observability"
                }
            }
        },
        "message.PauseClusterUpgradeResp": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "message.Result": {
            "type": "object",
            "properties": {
                "code": {
                    "description": "http error code",
                    "type": "integer"
                },
                "data": {
                    "description": "The returned content, storage in JSON format",
                    "type": "object"
                },
                "message": {
                    "description": "http error msg",
                    "type": "string"
                }
            }
        },
        "message.ResumeClusterUpgradeResp": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "message.StepStatus": {
            "type": "object",
            "properties": {
                "beginTime": {
                    "type": "string"
                },
                "duration": {
                    "type": "string"
                },
                "endTime": {
                    "type": "string"
                },
                "processor": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "message.UpdateBasicAuthReq": {
            "type": "object",
            "required": [
                "password",
                "username"
            ],
            "properties": {
                "password": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "message.UpdateBasicAuthResp": {
            "type": "object"
        },
        "message.UpdateHelmReleaseReq": {
            "type": "object",
            "required": [
                "component",
                "name"
            ],
            "properties": {
                "component": {
                    "description": "Pre-defined component name",
                    "type": "string"
                },
                "config": {
                    "type": "object",
                    "$ref": "#/definitions/message.HelmReleaseConfig"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "message.UpdateHelmReleaseResp": {
            "type": "object",
            "properties": {
                "component": {
                    "type": "string"
                },
                "config": {
                    "type": "object",
                    "$ref": "#/definitions/message.HelmReleaseConfig"
                },
                "name": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "status": {
                    "type": "object",
                    "$ref": "#/definitions/message.HelmReleaseStatusSummary"
                },
                "updateTime": {
                    "type": "string"
                }
            }
        },
        "message.UpdateVMClusterReq": {
            "type": "object",
            "required": [
                "id",
                "values"
            ],
            "properties": {
                "id": {
                    "type": "string"
                },
                "values": {
                    "type": "object",
                    "additionalProperties": true
                }
            }
        },
        "message.UpdateVMClusterResp": {
            "type": "object",
            "properties": {
                "endpoints": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "helm_release_info": {
                    "type": "object",
                    "$ref": "#/definitions/message.HelmReleaseInfo"
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "update_time": {
                    "type": "string"
                },
                "values": {
                    "type": "object",
                    "additionalProperties": true
                }
            }
        },
        "message.VMClusterSummary": {
            "type": "object",
            "properties": {
                "create_time": {
                    "type": "string"
                },
                "endpoints": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "update_time": {
                    "type": "string"
                }
            }
        },
        "v1.ClusterUpgradeOperation": {
            "type": "object",
            "properties": {
                "spec": {
                    "type": "object",
                    "$ref": "#/definitions/v1.ClusterUpgradeOperationSpec"
                },
                "status": {
                    "type": "object",
                    "$ref": "#/definitions/v1.ClusterUpgradeOperationStatus"
                }
            }
        },
        "v1.ClusterUpgradeOperationSpec": {
            "type": "object",
            "properties": {
                "cloudProvider": {
                    "description": "+kubebuilder:validation:Required\n+kubebuilder:validation:Enum=eks;gke;aks;ack\nCloudProvider is the cloud provider of the cluster",
                    "type": "string"
                },
                "k8sClusterName": {
                    "description": "+kubebuilder:validation:Required\nK8sClusterName is the name of the target Kubernetes cluster",
                    "type": "string"
                },
                "paused": {
                    "description": "Paused indicates whether the operation is paused",
                    "type": "boolean"
                },
                "region": {
                    "description": "+kubebuilder:validation:Required\nRegion is the cloud region where the cluster is located",
                    "type": "string"
                },
                "schedule": {
                    "description": "+kubebuilder:validation:Required\nSchedule is the scheduled time to start the operation",
                    "type": "string"
                },
                "steps": {
                    "description": "+kubebuilder:validation:Required\nSteps is the ordered list of upgrade steps to execute",
                    "type": "object",
                    "$ref": "#/definitions/v1.UpgradeSteps"
                },
                "targetVersion": {
                    "description": "+kubebuilder:validation:Required\nTargetVersion is the target Kubernetes version to upgrade to",
                    "type": "string"
                },
                "ttlSeconds": {
                    "description": "+optional\nTTLSeconds is the time-to-live after completion before auto-deletion",
                    "type": "string"
                }
            }
        },
        "v1.ClusterUpgradeOperationStatus": {
            "type": "object",
            "properties": {
                "beginTime": {
                    "description": "BeginTime is the time when the operation started",
                    "type": "string"
                },
                "currentStep": {
                    "description": "CurrentStep is the step currently being executed",
                    "type": "object",
                    "$ref": "#/definitions/v1.UpgradeStep"
                },
                "duration": {
                    "description": "Duration is the human-readable duration of the operation",
                    "type": "string"
                },
                "endTime": {
                    "description": "EndTime is the time when the operation completed",
                    "type": "string"
                },
                "nextSteps": {
                    "description": "NextSteps is the queue of steps to be executed",
                    "type": "object",
                    "$ref": "#/definitions/v1.UpgradeSteps"
                },
                "phase": {
                    "description": "Phase describes the current phase of the upgrade operation",
                    "type": "string"
                },
                "succeededSteps": {
                    "description": "SucceededSteps is the list of steps that have completed successfully",
                    "type": "object",
                    "$ref": "#/definitions/v1.UpgradeSteps"
                }
            }
        },
        "v1.UpgradeStep": {
            "type": "object",
            "properties": {
                "beginTime": {
                    "description": "+optional\nBeginTime is the time when this step started",
                    "type": "string"
                },
                "cloudOperationID": {
                    "description": "+optional\nCloudOperationID stores the cloud provider's async operation ID (e.g. GKE Operation name) for polling.\nUsed when UpgradeNodeGroup returns an operation ID; we poll this to determine completion.",
                    "type": "string"
                },
                "duration": {
                    "description": "+optional\nDuration is the human-readable duration of this step",
                    "type": "string"
                },
                "endTime": {
                    "description": "+optional\nEndTime is the time when this step completed",
                    "type": "string"
                },
                "options": {
                    "description": "+optional\nOptions contains processor-specific parameters",
                    "type": "string"
                },
                "processor": {
                    "description": "+kubebuilder:validation:Required\n+kubebuilder:validation:Enum=upgrade-controlplane;upgrade-cluster-addons;upgrade-node-group\nProcessor is the name of the processor to execute",
                    "type": "string"
                },
                "subStep": {
                    "description": "+optional\nSubStep is the current sub-step within this step (e.g. for blue-green node group: create-nodegroup, wait-ready, cordon, vmstorage-rollout, delete-old-nodegroup).",
                    "type": "string"
                },
                "subStepBeginTime": {
                    "description": "+optional\nSubStepBeginTime is when the current sub-step started.",
                    "type": "string"
                }
            }
        },
        "v1.UpgradeSteps": {
            "type": "array",
            "items": {
                "$ref": "#/definitions/v1.UpgradeStep"
            }
        }
    }
}