{
    "schemes": [
        "http",
        "https"
    ],
    "swagger": "2.0",
    "info": {
        "description": "OCDP (Open Cloud Development Platform) Backend API\n\nRESTful API for managing Kubernetes clusters, OCI registries, and Helm deployments.",
        "title": "OCDP Backend API",
        "contact": {
            "name": "API Support",
            "email": "support@ocdp.io"
        },
        "license": {
            "name": "Apache 2.0",
            "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
        },
        "version": "1.0"
    },
    "host": "localhost:8080",
    "basePath": "/api/v1",
    "paths": {
        "/auth/login": {
            "post": {
                "description": "使用用户名和密码获取访问令牌",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Auth"
                ],
                "summary": "用户登录",
                "parameters": [
                    {
                        "description": "登录信息",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.LoginRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.AuthResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/auth/refresh": {
            "post": {
                "description": "使用刷新令牌获取新的访问令牌",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Auth"
                ],
                "summary": "刷新访问令牌",
                "parameters": [
                    {
                        "description": "刷新令牌",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RefreshTokenRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.AuthResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/auth/register": {
            "post": {
                "description": "创建一个新的后台用户",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Auth"
                ],
                "summary": "用户注册",
                "parameters": [
                    {
                        "description": "注册信息",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RegisterRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UserResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/clusters": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Clusters"
                ],
                "summary": "列出所有集群",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ClusterResponse"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "创建一个新的 Kubernetes 集群配置",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Clusters"
                ],
                "summary": "创建集群",
                "parameters": [
                    {
                        "description": "集群信息",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.CreateClusterRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ClusterResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/clusters/{cluster_id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Clusters"
                ],
                "summary": "获取集群详情",
                "parameters": [
                    {
                        "type": "string",
                        "description": "集群 ID",
                        "name": "cluster_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ClusterResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Clusters"
                ],
                "summary": "更新集群",
                "parameters": [
                    {
                        "type": "string",
                        "description": "集群 ID",
                        "name": "cluster_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "更新内容",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UpdateClusterRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ClusterResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Clusters"
                ],
                "summary": "删除集群",
                "parameters": [
                    {
                        "type": "string",
                        "description": "集群 ID",
                        "name": "cluster_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/clusters/{cluster_id}/health": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Clusters"
                ],
                "summary": "获取集群健康状态",
                "parameters": [
                    {
                        "type": "string",
                        "description": "集群 ID",
                        "name": "cluster_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ClusterHealthResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/clusters/{cluster_id}/instances": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Instances"
                ],
                "summary": "列出实例",
                "parameters": [
                    {
                        "type": "string",
                        "description": "集群 ID",
                        "name": "cluster_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceListResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "在指定集群上部署一个 artifact",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Instances"
                ],
                "summary": "创建实例",
                "parameters": [
                    {
                        "type": "string",
                        "description": "集群 ID",
                        "name": "cluster_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "实例配置",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.CreateInstanceRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/clusters/{cluster_id}/instances/{instance_id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Instances"
                ],
                "summary": "获取实例详情",
                "parameters": [
                    {
                        "type": "string",
                        "description": "集群 ID",
                        "name": "cluster_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "实例 ID",
                        "name": "instance_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Instances"
                ],
                "summary": "更新实例",
                "parameters": [
                    {
                        "type": "string",
                        "description": "集群 ID",
                        "name": "cluster_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "实例 ID",
                        "name": "instance_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "更新内容",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UpdateInstanceRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Instances"
                ],
                "summary": "删除实例",
                "parameters": [
                    {
                        "type": "string",
                        "description": "集群 ID",
                        "name": "cluster_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "实例 ID",
                        "name": "instance_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/clusters/{cluster_id}/instances/{instance_id}/entries": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Instances"
                ],
                "summary": "获取实例 Service/Ingress 入口",
                "parameters": [
                    {
                        "type": "string",
                        "description": "集群 ID",
                        "name": "cluster_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "实例 ID",
                        "name": "instance_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryResponse"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/monitoring/clusters": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Monitoring"
                ],
                "summary": "列出集群监控",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ClusterMetricsResponse"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/monitoring/clusters/{cluster_id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Monitoring"
                ],
                "summary": "获取集群监控",
                "parameters": [
                    {
                        "type": "string",
                        "description": "集群 ID",
                        "name": "cluster_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ClusterMetricsResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/monitoring/clusters/{cluster_id}/nodes": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Monitoring"
                ],
                "summary": "获取节点指标",
                "parameters": [
                    {
                        "type": "string",
                        "description": "集群 ID",
                        "name": "cluster_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.NodeMetricsResponse"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/monitoring/summary": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Monitoring"
                ],
                "summary": "获取监控汇总",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.MonitoringSummaryResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/registries": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Registries"
                ],
                "summary": "列出所有 Registries",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RegistryResponse"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "新增 OCI Registry 配置",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Registries"
                ],
                "summary": "创建 Registry",
                "parameters": [
                    {
                        "description": "Registry 信息",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.CreateRegistryRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RegistryResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/registries/{registry_id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Registries"
                ],
                "summary": "获取 Registry",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registry ID",
                        "name": "registry_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RegistryResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Registries"
                ],
                "summary": "更新 Registry",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registry ID",
                        "name": "registry_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "更新内容",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UpdateRegistryRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RegistryResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Registries"
                ],
                "summary": "删除 Registry",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registry ID",
                        "name": "registry_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/registries/{registry_id}/health": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Registries"
                ],
                "summary": "检查 Registry 健康",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registry ID",
                        "name": "registry_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RegistryHealthResponse"
                        }
                    }
                }
            }
        },
        "/registries/{registry_id}/repositories": {
            "get": {
                "description": "列出指定 Registry 中的所有 Repository",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Artifacts"
                ],
                "summary": "列出 Registry 中的所有 Repositories",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registry ID",
                        "name": "registry_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RepositoryListResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/registries/{registry_id}/repositories/{repository_name}/artifacts": {
            "get": {
                "description": "列出指定 Repository 中的所有 Artifact，支持按类型过滤",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Artifacts"
                ],
                "summary": "列出 Repository 中的所有 Artifacts",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registry ID",
                        "name": "registry_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Repository Name (URL encoded, e.g. charts%2Fnginx)",
                        "name": "repository_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "all",
                        "description": "过滤 Artifact 类型 (all, chart, image, other)",
                        "name": "media_type",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.TagResponse"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/registries/{registry_id}/repositories/{repository_name}/artifacts/{reference}": {
            "get": {
                "description": "获取指定 Artifact 的详细信息",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Artifacts"
                ],
                "summary": "获取 Artifact 详情",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registry ID",
                        "name": "registry_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Repository Name (URL encoded)",
                        "name": "repository_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Artifact Reference (tag or digest)",
                        "name": "reference",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ArtifactResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/registries/{registry_id}/repositories/{repository_name}/artifacts/{reference}/values-schema": {
            "get": {
                "description": "获取 Helm Chart 的 values.schema.json (仅支持 Chart 类型)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Artifacts"
                ],
                "summary": "获取 Helm Chart Values Schema",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registry ID",
                        "name": "registry_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Repository Name (URL encoded)",
                        "name": "repository_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Artifact Reference (tag or digest)",
                        "name": "reference",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ValuesSchemaResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ArtifactResponse": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "type": "string"
                },
                "digest": {
                    "type": "string"
                },
                "repositoryName": {
                    "type": "string"
                },
                "size": {
                    "type": "integer"
                },
                "tag": {
                    "type": "string"
                },
                "type": {
                    "description": "chart | image | other",
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.AuthResponse": {
            "type": "object",
            "properties": {
                "accessToken": {
                    "type": "string"
                },
                "refreshToken": {
                    "type": "string"
                },
                "userId": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ClusterHealthResponse": {
            "type": "object",
            "properties": {
                "healthy": {
                    "type": "boolean"
                },
                "message": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ClusterMetricsResponse": {
            "type": "object",
            "properties": {
                "clusterId": {
                    "type": "string"
                },
                "clusterName": {
                    "type": "string"
                },
                "cpuUsage": {
                    "type": "number"
                },
                "gpuUsage": {
                    "type": "number"
                },
                "lastCheck": {
                    "type": "string"
                },
                "maxNodeCpu": {
                    "type": "string"
                },
                "maxNodeCpuUsage": {
                    "type": "number"
                },
                "maxNodeGpu": {
                    "type": "integer"
                },
                "maxNodeGpuUsage": {
                    "type": "number"
                },
                "maxNodeMemUsage": {
                    "type": "number"
                },
                "maxNodeMemory": {
                    "type": "string"
                },
                "memoryUsage": {
                    "type": "number"
                },
                "nodeCount": {
                    "type": "integer"
                },
                "nodes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.NodeMetricsResponse"
                    }
                },
                "podCount": {
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                },
                "totalCpu": {
                    "type": "string"
                },
                "totalGpu": {
                    "type": "integer"
                },
                "totalMemory": {
                    "type": "string"
                },
                "uptime": {
                    "type": "string"
                },
                "usedCpu": {
                    "type": "string"
                },
                "usedGpu": {
                    "type": "integer"
                },
                "usedMemory": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ClusterResponse": {
            "type": "object",
            "properties": {
                "caData": {
                    "description": "脱敏数据（仅用于前端显示，实际值为掩码）",
                    "type": "string"
                },
                "certData": {
                    "description": "脱敏显示（••••••••）",
                    "type": "string"
                },
                "createdAt": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "hasCaData": {
                    "description": "认证配置状态（不返回实际证书数据，仅返回是否已配置）",
                    "type": "boolean"
                },
                "hasCertData": {
                    "type": "boolean"
                },
                "hasKeyData": {
                    "type": "boolean"
                },
                "hasToken": {
                    "type": "boolean"
                },
                "host": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "keyData": {
                    "description": "脱敏显示（••••••••）",
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "token": {
                    "description": "脱敏显示（••••••••）",
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.CreateClusterRequest": {
            "type": "object",
            "required": [
                "host",
                "name"
            ],
            "properties": {
                "caData": {
                    "type": "string"
                },
                "certData": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "host": {
                    "type": "string"
                },
                "keyData": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "token": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.CreateInstanceRequest": {
            "type": "object",
            "required": [
                "name",
                "namespace",
                "registryId",
                "repository",
                "tag"
            ],
            "properties": {
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "registryId": {
                    "type": "string"
                },
                "repository": {
                    "type": "string"
                },
                "tag": {
                    "type": "string"
                },
                "values": {
                    "type": "object",
                    "additionalProperties": true
                },
                "valuesYaml": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.CreateRegistryRequest": {
            "type": "object",
            "required": [
                "name",
                "url"
            ],
            "properties": {
                "description": {
                    "type": "string"
                },
                "insecure": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "integer"
                },
                "error": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryHostResponse": {
            "type": "object",
            "properties": {
                "host": {
                    "type": "string"
                },
                "paths": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryPathResponse"
                    }
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryPathResponse": {
            "type": "object",
            "properties": {
                "path": {
                    "type": "string"
                },
                "serviceName": {
                    "type": "string"
                },
                "servicePort": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryPortResponse": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "nodePort": {
                    "type": "integer"
                },
                "port": {
                    "type": "integer"
                },
                "protocol": {
                    "type": "string"
                },
                "targetPort": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryResponse": {
            "type": "object",
            "properties": {
                "clusterIP": {
                    "type": "string"
                },
                "externalIPs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "hosts": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryHostResponse"
                    }
                },
                "kind": {
                    "type": "string"
                },
                "loadBalancerIngress": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "name": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "ports": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryPortResponse"
                    }
                },
                "tls": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryTLSResponse"
                    }
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryTLSResponse": {
            "type": "object",
            "properties": {
                "hosts": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "secretName": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceListResponse": {
            "type": "object",
            "properties": {
                "instances": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceResponse"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceResponse": {
            "type": "object",
            "properties": {
                "chart": {
                    "type": "string"
                },
                "clusterId": {
                    "type": "string"
                },
                "createdAt": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "registryId": {
                    "type": "string"
                },
                "repository": {
                    "type": "string"
                },
                "revision": {
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string"
                },
                "values": {
                    "type": "object",
                    "additionalProperties": true
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.LoginRequest": {
            "type": "object",
            "required": [
                "password",
                "username"
            ],
            "properties": {
                "password": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.MonitoringSummaryResponse": {
            "type": "object",
            "properties": {
                "errorClusters": {
                    "type": "integer"
                },
                "healthyClusters": {
                    "type": "integer"
                },
                "lastUpdate": {
                    "type": "string"
                },
                "totalClusters": {
                    "type": "integer"
                },
                "totalNodes": {
                    "type": "integer"
                },
                "totalPods": {
                    "type": "integer"
                },
                "warningClusters": {
                    "type": "integer"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.NodeMetricsResponse": {
            "type": "object",
            "properties": {
                "age": {
                    "type": "string"
                },
                "containerRuntime": {
                    "type": "string"
                },
                "cpuAllocatable": {
                    "type": "string"
                },
                "cpuCapacity": {
                    "type": "string"
                },
                "cpuPercent": {
                    "type": "number"
                },
                "cpuUsage": {
                    "type": "string"
                },
                "gpuCapacity": {
                    "type": "integer"
                },
                "gpuPercent": {
                    "type": "number"
                },
                "gpuType": {
                    "type": "string"
                },
                "gpuUsage": {
                    "type": "integer"
                },
                "kernelVersion": {
                    "type": "string"
                },
                "kubeletVersion": {
                    "type": "string"
                },
                "memoryAllocatable": {
                    "type": "string"
                },
                "memoryCapacity": {
                    "type": "string"
                },
                "memoryPercent": {
                    "type": "number"
                },
                "memoryUsage": {
                    "type": "string"
                },
                "nodeName": {
                    "type": "string"
                },
                "osImage": {
                    "type": "string"
                },
                "podCount": {
                    "type": "integer"
                },
                "role": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RefreshTokenRequest": {
            "type": "object",
            "required": [
                "refreshToken"
            ],
            "properties": {
                "refreshToken": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RegisterRequest": {
            "type": "object",
            "required": [
                "password",
                "username"
            ],
            "properties": {
                "password": {
                    "type": "string",
                    "minLength": 6
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RegistryHealthResponse": {
            "type": "object",
            "properties": {
                "healthy": {
                    "type": "boolean"
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RegistryResponse": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "hasPassword": {
                    "description": "是否已设置密码",
                    "type": "boolean"
                },
                "id": {
                    "type": "string"
                },
                "insecure": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "password": {
                    "description": "脱敏显示（••••••••）",
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                },
                "username": {
                    "description": "明文返回用户名（不敏感）",
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RepositoryListResponse": {
            "type": "object",
            "properties": {
                "catalogSupported": {
                    "description": "Whether _catalog API is supported",
                    "type": "boolean"
                },
                "message": {
                    "description": "User-friendly message",
                    "type": "string"
                },
                "registryId": {
                    "type": "string"
                },
                "registryUrl": {
                    "type": "string"
                },
                "repositories": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "source": {
                    "description": "Data source: \"catalog\" | \"preconfigured\" | \"unavailable\"",
                    "type": "string"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.TagResponse": {
            "type": "object",
            "properties": {
                "mediaType": {
                    "type": "string"
                },
                "repositoryName": {
                    "description": "Repository name",
                    "type": "string"
                },
                "size": {
                    "description": "Artifact size (bytes)",
                    "type": "integer"
                },
                "tag": {
                    "description": "Tag name (e.g. \"1.0.0\", \"latest\")",
                    "type": "string"
                },
                "type": {
                    "description": "Artifact type: chart, image, other",
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UpdateClusterRequest": {
            "type": "object",
            "properties": {
                "caData": {
                    "type": "string"
                },
                "certData": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "host": {
                    "type": "string"
                },
                "keyData": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "token": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UpdateInstanceRequest": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "values": {
                    "type": "object",
                    "additionalProperties": true
                },
                "valuesYaml": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UpdateRegistryRequest": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "insecure": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UserResponse": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ValuesSchemaResponse": {
            "type": "object",
            "properties": {
                "schema": {
                    "type": "string"
                }
            }
        }
    },
    "securityDefinitions": {
        "BearerAuth": {
            "description": "Type \"Bearer\" followed by a space and JWT token.",
            "type": "apiKey",
            "name": "Authorization",
            "in": "header"
        }
    }
}