basePath: /api/v1 definitions: github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ArtifactResponse: properties: createdAt: type: string digest: type: string repositoryName: type: string size: type: integer tag: type: string type: description: chart | image | other type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.AuthResponse: properties: accessToken: type: string refreshToken: type: string userId: type: string username: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ChangePasswordRequest: properties: new_password: minLength: 6 type: string old_password: type: string required: - new_password - old_password type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ChangeUserWorkspaceRequest: properties: workspace_id: type: string required: - workspace_id type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ClusterHealthResponse: properties: healthy: type: boolean message: type: string version: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ClusterMetricsResponse: 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: items: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.NodeMetricsResponse' type: array 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 type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ClusterResponse: properties: caData: description: 脱敏数据(仅用于前端显示,实际值为掩码) type: string certData: description: 脱敏显示(••••••••) type: string createdAt: type: string defaultNamespace: description: 默认 namespace 前缀 type: string description: type: string hasCaData: description: 认证配置状态(不返回实际证书数据,仅返回是否已配置) type: boolean hasCertData: type: boolean hasKeyData: type: boolean hasToken: type: boolean host: type: string id: type: string isShared: description: 是否为共享集群 type: boolean isolationMode: description: '''namespace'' | ''cluster''' type: string keyData: description: 脱敏显示(••••••••) type: string name: type: string ownerId: type: string token: description: 脱敏显示(••••••••) type: string updatedAt: type: string workspaceId: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.CreateClusterRequest: properties: ca_data: type: string caData: type: string cert_data: type: string certData: type: string defaultNamespace: description: 默认 namespace 前缀 type: string description: type: string host: type: string isShared: description: 是否为共享集群 type: boolean isolationMode: description: '''namespace'' | ''cluster''' type: string key_data: type: string keyData: type: string name: type: string token: type: string required: - host - name type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.CreateInstanceRequest: properties: description: type: string name: type: string namespace: type: string registry_id: type: string registryId: type: string repository: type: string tag: type: string values: additionalProperties: true type: object valuesYaml: type: string required: - name - namespace - registryId - repository - tag type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.CreateRegistryRequest: properties: description: type: string insecure: type: boolean name: type: string password: type: string url: type: string username: type: string required: - name - url type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.CreateUserRequest: properties: email: type: string password: minLength: 6 type: string role: enum: - admin - user type: string username: type: string workspace_id: type: string required: - password - role - username type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.CreateWorkspaceRequest: properties: description: type: string name: type: string required: - name type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse: properties: code: type: integer error: type: string message: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryHostResponse: properties: host: type: string paths: items: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryPathResponse' type: array type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryPathResponse: properties: path: type: string serviceName: type: string servicePort: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryPortResponse: properties: name: type: string nodePort: type: integer port: type: integer protocol: type: string targetPort: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryResponse: properties: clusterIP: type: string externalIPs: items: type: string type: array hosts: items: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryHostResponse' type: array kind: type: string loadBalancerIngress: items: type: string type: array name: type: string namespace: type: string ports: items: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryPortResponse' type: array tls: items: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryTLSResponse' type: array type: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryTLSResponse: properties: hosts: items: type: string type: array secretName: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceListResponse: properties: instances: items: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceResponse' type: array total: type: integer type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceResponse: properties: chart: type: string clusterId: type: string createdAt: type: string description: type: string id: type: string lastError: type: string lastOperation: type: string name: type: string namespace: type: string registryId: type: string repository: type: string revision: type: integer status: type: string statusReason: type: string updatedAt: type: string values: additionalProperties: true type: object version: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.LoginRequest: properties: password: type: string username: type: string required: - password - username type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.MonitoringSummaryResponse: properties: errorClusters: type: integer healthyClusters: type: integer lastUpdate: type: string totalClusters: type: integer totalNodes: type: integer totalPods: type: integer warningClusters: type: integer type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.NodeMetricsResponse: 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 type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.QuotaDTO: properties: hard_limit: type: number id: type: string resource_type: type: string soft_limit: type: number used: type: number workspace_id: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.QuotaValue: properties: hard_limit: type: number soft_limit: type: number type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RefreshTokenRequest: properties: refreshToken: type: string required: - refreshToken type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RegisterRequest: properties: password: minLength: 6 type: string username: type: string required: - password - username type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RegistryHealthResponse: properties: healthy: type: boolean message: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RegistryResponse: 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 type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RepositoryListResponse: properties: catalogSupported: description: Whether _catalog API is supported type: boolean message: description: User-friendly message type: string registryId: type: string registryUrl: type: string repositories: items: type: string type: array source: description: 'Data source: "catalog" | "preconfigured" | "unavailable"' type: string total: type: integer type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ResetPasswordRequest: properties: new_password: minLength: 6 type: string required: - new_password type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.SetQuotasRequest: properties: cpu: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.QuotaValue' gpu: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.QuotaValue' gpu_memory: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.QuotaValue' type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.SetUserActiveRequest: properties: is_active: type: boolean type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.TagResponse: 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 type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UpdateClusterRequest: properties: ca_data: type: string caData: type: string cert_data: type: string certData: type: string defaultNamespace: type: string description: type: string host: type: string isShared: type: boolean isolationMode: type: string key_data: type: string keyData: type: string name: type: string token: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UpdateInstanceRequest: properties: description: type: string values: additionalProperties: true type: object valuesYaml: type: string version: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UpdateRegistryRequest: properties: description: type: string insecure: type: boolean name: type: string password: type: string url: type: string username: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UpdateUserRequest: properties: email: type: string is_active: type: boolean type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UpdateWorkspaceRequest: properties: description: type: string name: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UserDTO: properties: created_at: type: string email: type: string id: type: string is_active: type: boolean must_change_password: type: boolean role: type: string updated_at: type: string username: type: string workspace_id: type: string workspace_name: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UserListResponse: properties: total: type: integer users: items: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UserDTO' type: array type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UserResponse: properties: createdAt: type: string email: type: string id: type: string updatedAt: type: string username: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ValuesResponse: properties: values: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ValuesSchemaResponse: properties: schema: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.WorkspaceDTO: properties: created_at: type: string created_by: type: string description: type: string id: type: string name: type: string updated_at: type: string type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.WorkspaceListResponse: properties: total: type: integer workspaces: items: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.WorkspaceDTO' type: array type: object github_com_ocdp_cluster-service_internal_adapter_input_http_dto.WorkspaceResponse: properties: quotas: items: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.QuotaDTO' type: array workspace: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.WorkspaceDTO' type: object host: localhost:8080 info: contact: email: support@ocdp.io name: API Support description: |- OCDP (Open Cloud Development Platform) Backend API RESTful API for managing Kubernetes clusters, OCI registries, and Helm deployments. license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html title: OCDP Backend API version: "1.0" paths: /admin/users: get: consumes: - application/json description: 获取所有用户列表(Admin 专用),可按 workspace_id 筛选 parameters: - description: 工作空间 ID in: query name: workspace_id type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UserListResponse' summary: 列出用户 tags: - admin post: consumes: - application/json description: 创建新用户(Admin 专用) parameters: - description: 创建用户请求 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.CreateUserRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UserResponse' summary: 创建用户 tags: - admin /admin/users/{user_id}: delete: consumes: - application/json description: 删除指定用户(Admin 专用) parameters: - description: 用户 ID in: path name: user_id required: true type: string produces: - application/json responses: "200": description: OK summary: 删除用户 tags: - admin get: consumes: - application/json description: 获取指定用户信息(Admin 专用) parameters: - description: 用户 ID in: path name: user_id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UserResponse' summary: 获取用户 tags: - admin put: consumes: - application/json description: 更新用户信息(Admin 专用) parameters: - description: 用户 ID in: path name: user_id required: true type: string - description: 更新用户请求 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UpdateUserRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UserResponse' summary: 更新用户 tags: - admin /admin/users/{user_id}/active: put: consumes: - application/json description: 设置用户是否启用(Admin 专用) parameters: - description: 用户 ID in: path name: user_id required: true type: string - description: 启用状态 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.SetUserActiveRequest' produces: - application/json responses: "200": description: OK summary: 启用/禁用用户 tags: - admin /admin/users/{user_id}/password: put: consumes: - application/json description: 重置指定用户的密码(Admin 专用) parameters: - description: 用户 ID in: path name: user_id required: true type: string - description: 重置密码请求 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ResetPasswordRequest' produces: - application/json responses: "200": description: OK summary: 重置用户密码 tags: - admin /admin/users/{user_id}/workspace: put: consumes: - application/json description: 将用户分配到指定工作空间(Admin 专用) parameters: - description: 用户 ID in: path name: user_id required: true type: string - description: 工作空间分配请求 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ChangeUserWorkspaceRequest' produces: - application/json responses: "200": description: OK summary: 分配用户到工作空间 tags: - admin /auth/login: post: consumes: - application/json description: 使用用户名和密码获取访问令牌 parameters: - description: 登录信息 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.LoginRequest' produces: - application/json 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' summary: 用户登录 tags: - Auth /auth/refresh: post: consumes: - application/json description: 使用刷新令牌获取新的访问令牌 parameters: - description: 刷新令牌 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RefreshTokenRequest' produces: - application/json 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' summary: 刷新访问令牌 tags: - Auth /auth/register: post: consumes: - application/json description: 创建一个新的后台用户 parameters: - description: 注册信息 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RegisterRequest' produces: - application/json 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' summary: 用户注册 tags: - Auth /clusters: get: produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ClusterResponse' type: array "500": description: Internal Server Error schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse' security: - BearerAuth: [] summary: 列出所有集群 tags: - Clusters post: consumes: - application/json description: 创建一个新的 Kubernetes 集群配置 parameters: - description: 集群信息 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.CreateClusterRequest' produces: - application/json 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' security: - BearerAuth: [] summary: 创建集群 tags: - Clusters /clusters/{cluster_id}: delete: parameters: - description: 集群 ID in: path name: cluster_id required: true type: string produces: - application/json 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' security: - BearerAuth: [] summary: 删除集群 tags: - Clusters get: parameters: - description: 集群 ID in: path name: cluster_id required: true type: string produces: - application/json 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' security: - BearerAuth: [] summary: 获取集群详情 tags: - Clusters put: consumes: - application/json parameters: - description: 集群 ID in: path name: cluster_id required: true type: string - description: 更新内容 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UpdateClusterRequest' produces: - application/json 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' security: - BearerAuth: [] summary: 更新集群 tags: - Clusters /clusters/{cluster_id}/health: get: parameters: - description: 集群 ID in: path name: cluster_id required: true type: string produces: - application/json 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' security: - BearerAuth: [] summary: 获取集群健康状态 tags: - Clusters /clusters/{cluster_id}/instances: get: parameters: - description: 集群 ID in: path name: cluster_id required: true type: string produces: - application/json 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' security: - BearerAuth: [] summary: 列出实例 tags: - Instances post: consumes: - application/json description: 在指定集群上部署一个 artifact parameters: - description: 集群 ID in: path name: cluster_id required: true type: string - description: 实例配置 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.CreateInstanceRequest' produces: - application/json 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' security: - BearerAuth: [] summary: 创建实例 tags: - Instances /clusters/{cluster_id}/instances/{instance_id}: delete: parameters: - description: 集群 ID in: path name: cluster_id required: true type: string - description: 实例 ID in: path name: instance_id required: true type: string produces: - application/json 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' security: - BearerAuth: [] summary: 删除实例 tags: - Instances get: parameters: - description: 集群 ID in: path name: cluster_id required: true type: string - description: 实例 ID in: path name: instance_id required: true type: string produces: - application/json 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' security: - BearerAuth: [] summary: 获取实例详情 tags: - Instances put: consumes: - application/json parameters: - description: 集群 ID in: path name: cluster_id required: true type: string - description: 实例 ID in: path name: instance_id required: true type: string - description: 更新内容 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UpdateInstanceRequest' produces: - application/json 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' security: - BearerAuth: [] summary: 更新实例 tags: - Instances /clusters/{cluster_id}/instances/{instance_id}/entries: get: parameters: - description: 集群 ID in: path name: cluster_id required: true type: string - description: 实例 ID in: path name: instance_id required: true type: string produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.InstanceEntryResponse' type: array "404": description: Not Found schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse' security: - BearerAuth: [] summary: 获取实例 Service/Ingress 入口 tags: - Instances /monitoring/clusters: get: produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ClusterMetricsResponse' type: array "500": description: Internal Server Error schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse' security: - BearerAuth: [] summary: 列出集群监控 tags: - Monitoring /monitoring/clusters/{cluster_id}: get: parameters: - description: 集群 ID in: path name: cluster_id required: true type: string produces: - application/json 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' security: - BearerAuth: [] summary: 获取集群监控 tags: - Monitoring /monitoring/clusters/{cluster_id}/nodes: get: parameters: - description: 集群 ID in: path name: cluster_id required: true type: string produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.NodeMetricsResponse' type: array "500": description: Internal Server Error schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse' security: - BearerAuth: [] summary: 获取节点指标 tags: - Monitoring /monitoring/summary: get: produces: - application/json 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' security: - BearerAuth: [] summary: 获取监控汇总 tags: - Monitoring /registries: get: produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RegistryResponse' type: array "500": description: Internal Server Error schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse' security: - BearerAuth: [] summary: 列出所有 Registries tags: - Registries post: consumes: - application/json description: 新增 OCI Registry 配置 parameters: - description: Registry 信息 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.CreateRegistryRequest' produces: - application/json 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' security: - BearerAuth: [] summary: 创建 Registry tags: - Registries /registries/{registry_id}: delete: parameters: - description: Registry ID in: path name: registry_id required: true type: string produces: - application/json 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' security: - BearerAuth: [] summary: 删除 Registry tags: - Registries get: parameters: - description: Registry ID in: path name: registry_id required: true type: string produces: - application/json 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' security: - BearerAuth: [] summary: 获取 Registry tags: - Registries put: consumes: - application/json parameters: - description: Registry ID in: path name: registry_id required: true type: string - description: 更新内容 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UpdateRegistryRequest' produces: - application/json 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' security: - BearerAuth: [] summary: 更新 Registry tags: - Registries /registries/{registry_id}/health: get: parameters: - description: Registry ID in: path name: registry_id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.RegistryHealthResponse' security: - BearerAuth: [] summary: 检查 Registry 健康 tags: - Registries /registries/{registry_id}/repositories: get: consumes: - application/json description: 列出指定 Registry 中的所有 Repository parameters: - description: Registry ID in: path name: registry_id required: true type: string produces: - application/json 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' summary: 列出 Registry 中的所有 Repositories tags: - Artifacts /registries/{registry_id}/repositories/{repository_name}/artifacts: get: consumes: - application/json description: 列出指定 Repository 中的所有 Artifact,支持按类型过滤 parameters: - description: Registry ID in: path name: registry_id required: true type: string - description: Repository Name (URL encoded, e.g. charts%2Fnginx) in: path name: repository_name required: true type: string - default: all description: 过滤 Artifact 类型 (all, chart, image, other) in: query name: media_type type: string produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.TagResponse' type: array "500": description: Internal Server Error schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse' summary: 列出 Repository 中的所有 Artifacts tags: - Artifacts /registries/{registry_id}/repositories/{repository_name}/artifacts/{reference}: get: consumes: - application/json description: 获取指定 Artifact 的详细信息 parameters: - description: Registry ID in: path name: registry_id required: true type: string - description: Repository Name (URL encoded) in: path name: repository_name required: true type: string - description: Artifact Reference (tag or digest) in: path name: reference required: true type: string produces: - application/json 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' summary: 获取 Artifact 详情 tags: - Artifacts /registries/{registry_id}/repositories/{repository_name}/artifacts/{reference}/values: get: consumes: - application/json description: 获取 Helm Chart 的 values.yaml 文件内容 (仅支持 Chart 类型) parameters: - description: Registry ID in: path name: registry_id required: true type: string - description: Repository Name (URL encoded) in: path name: repository_name required: true type: string - description: Artifact Reference (tag or digest) in: path name: reference required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ValuesResponse' "500": description: Internal Server Error schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ErrorResponse' summary: 获取 Helm Chart Values tags: - Artifacts /registries/{registry_id}/repositories/{repository_name}/artifacts/{reference}/values-schema: get: consumes: - application/json description: 获取 Helm Chart 的 values.schema.json (仅支持 Chart 类型) parameters: - description: Registry ID in: path name: registry_id required: true type: string - description: Repository Name (URL encoded) in: path name: repository_name required: true type: string - description: Artifact Reference (tag or digest) in: path name: reference required: true type: string produces: - application/json 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' summary: 获取 Helm Chart Values Schema tags: - Artifacts /users/me: get: consumes: - application/json description: 获取当前登录用户的基本信息 produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UserResponse' summary: 获取当前用户信息 tags: - user /users/me/password: put: consumes: - application/json description: 修改当前登录用户的密码 parameters: - description: 修改密码请求 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.ChangePasswordRequest' produces: - application/json responses: "200": description: OK summary: 修改当前用户密码 tags: - user /users/me/workspace: get: consumes: - application/json description: 获取当前用户所属工作空间的详细信息和配额 produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.WorkspaceResponse' summary: 获取当前用户所属工作空间 tags: - user /workspaces: get: consumes: - application/json description: 获取所有工作空间列表(Admin 专用) produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.WorkspaceListResponse' summary: 列出所有工作空间 tags: - workspace post: consumes: - application/json description: 创建新的工作空间(Admin 专用) parameters: - description: 创建工作空间请求 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.CreateWorkspaceRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.WorkspaceDTO' summary: 创建工作空间 tags: - workspace /workspaces/{workspace_id}: delete: consumes: - application/json description: 删除指定工作空间(Admin 专用) parameters: - description: 工作空间 ID in: path name: workspace_id required: true type: string produces: - application/json responses: "200": description: OK summary: 删除工作空间 tags: - workspace get: consumes: - application/json description: 获取指定工作空间的详细信息和配额 parameters: - description: 工作空间 ID in: path name: workspace_id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.WorkspaceResponse' summary: 获取工作空间 tags: - workspace put: consumes: - application/json description: 更新工作空间信息(Admin 专用) parameters: - description: 工作空间 ID in: path name: workspace_id required: true type: string - description: 更新工作空间请求 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.UpdateWorkspaceRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.WorkspaceDTO' summary: 更新工作空间 tags: - workspace /workspaces/{workspace_id}/quotas: get: consumes: - application/json description: 获取指定工作空间的资源配额 parameters: - description: 工作空间 ID in: path name: workspace_id required: true type: string produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.QuotaDTO' type: array summary: 获取工作空间配额 tags: - workspace put: consumes: - application/json description: 设置指定工作空间的 CPU/GPU/GPU Memory 配额(Admin 专用) parameters: - description: 工作空间 ID in: path name: workspace_id required: true type: string - description: 配额设置请求 in: body name: request required: true schema: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.SetQuotasRequest' produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/github_com_ocdp_cluster-service_internal_adapter_input_http_dto.QuotaDTO' type: array summary: 设置工作空间配额 tags: - workspace schemes: - http - https securityDefinitions: BearerAuth: description: Type "Bearer" followed by a space and JWT token. in: header name: Authorization type: apiKey swagger: "2.0"