package dto // CreateClusterRequest 创建集群请求 type CreateClusterRequest struct { Name string `json:"name" binding:"required"` Host string `json:"host" binding:"required"` CAData string `json:"caData"` CADataAlt string `json:"ca_data"` CertData string `json:"certData"` CertDataAlt string `json:"cert_data"` KeyData string `json:"keyData"` KeyDataAlt string `json:"key_data"` Token string `json:"token"` Description string `json:"description"` Visibility string `json:"visibility"` GlobalShared bool `json:"globalShared"` GlobalSharedAlt bool `json:"global_shared"` DefaultNamespace string `json:"defaultNamespace"` } // UpdateClusterRequest 更新集群请求 type UpdateClusterRequest struct { Name string `json:"name"` Host string `json:"host"` CAData string `json:"caData"` CADataAlt string `json:"ca_data"` CertData string `json:"certData"` CertDataAlt string `json:"cert_data"` KeyData string `json:"keyData"` KeyDataAlt string `json:"key_data"` Token string `json:"token"` Description string `json:"description"` Visibility string `json:"visibility"` GlobalShared bool `json:"globalShared"` GlobalSharedAlt bool `json:"global_shared"` DefaultNamespace string `json:"defaultNamespace"` } // Normalize 将多种命名风格的字段合并到统一字段 func (r *CreateClusterRequest) Normalize() { if r.CAData == "" { r.CAData = r.CADataAlt } if r.CertData == "" { r.CertData = r.CertDataAlt } if r.KeyData == "" { r.KeyData = r.KeyDataAlt } } // Normalize 将多种命名风格的字段合并到统一字段 func (r *UpdateClusterRequest) Normalize() { if r.CAData == "" { r.CAData = r.CADataAlt } if r.CertData == "" { r.CertData = r.CertDataAlt } if r.KeyData == "" { r.KeyData = r.KeyDataAlt } } // ClusterResponse 集群响应(敏感数据已脱敏) type ClusterResponse struct { ID string `json:"id"` Name string `json:"name"` Host string `json:"host"` Description string `json:"description"` WorkspaceID string `json:"workspaceId"` OwnerID string `json:"ownerId"` Visibility string `json:"visibility"` DefaultNamespace string `json:"defaultNamespace,omitempty"` AllowedActions []string `json:"allowedActions,omitempty"` // 认证配置状态(不返回实际证书数据,仅返回是否已配置) HasCAData bool `json:"hasCaData"` HasCertData bool `json:"hasCertData"` HasKeyData bool `json:"hasKeyData"` HasToken bool `json:"hasToken"` // 脱敏数据(仅用于前端显示,实际值为掩码) CAData string `json:"caData,omitempty"` // 脱敏显示(••••••••) CertData string `json:"certData,omitempty"` // 脱敏显示(••••••••) KeyData string `json:"keyData,omitempty"` // 脱敏显示(••••••••) Token string `json:"token,omitempty"` // 脱敏显示(••••••••) CreatedAt string `json:"createdAt"` UpdatedAt string `json:"updatedAt"` } // ClusterHealthResponse 集群健康状态响应 type ClusterHealthResponse struct { Healthy bool `json:"healthy"` Message string `json:"message,omitempty"` Version string `json:"version,omitempty"` }