Documentation ¶
Index ¶
- type AlertEventSilenceRequest
- type Api
- type AssignUserRoleRequest
- type AssignUsersRoleRequest
- type BatchDeleteReq
- type BatchEventAlertSilenceRequest
- type BatchRequest
- type BindResourceReq
- type ChangePasswordRequest
- type ChartItem
- type ClusterNamespaces
- type ContainerCore
- type CreateApiRequest
- type CreateMenuRequest
- type CreateNamespaceRequest
- type CreateRoleRequest
- type DeleteMenuRequest
- type DeleteUserRequest
- type EcsBuyWorkOrder
- type Event
- type GetApiRequest
- type GetMenuRequest
- type GetRoleRequest
- type IdRequest
- type InstanceConfig
- type K8sApp
- type K8sCluster
- type K8sClusterNodesRequest
- type K8sConfigMapRequest
- type K8sContainerPort
- type K8sCronjob
- type K8sDeploymentRequest
- type K8sEnvVar
- type K8sHTTPGetAction
- type K8sInstance
- type K8sNode
- type K8sOneVolume
- type K8sPod
- type K8sPodContainer
- type K8sPodRequest
- type K8sProbe
- type K8sProject
- type K8sResourceList
- type K8sServiceRequest
- type K8sVolumeMount
- type K8sYamlTask
- type K8sYamlTemplate
- type KeyValueItem
- type LabelK8sNodesRequest
- type ListApisRequest
- type ListMenusRequest
- type ListRolesRequest
- type ListUserRolesRequest
- type Menu
- type Meta
- type MetaField
- type Model
- type MonitorAlertEvent
- type MonitorAlertManagerPool
- type MonitorAlertRule
- type MonitorOnDutyChange
- type MonitorOnDutyGroup
- type MonitorOnDutyHistory
- type MonitorRecordRule
- type MonitorScrapeJob
- type MonitorScrapePool
- type MonitorSendGroup
- type Namespace
- type OnDutyOne
- type OnDutyPlanResp
- type OneEvent
- type PromqlExprCheckReq
- type Resource
- type ResourceEcs
- type ResourceElb
- type ResourceRds
- type ResourceRequirements
- type ResourceTree
- type Role
- type ScheduleK8sNodesRequest
- type SecurityConfig
- type StringList
- type Taint
- type TaintK8sNodesRequest
- type Task
- type TerraformConfig
- type TokenRequest
- type TreeNode
- type UpdateApiRequest
- type UpdateMenuRequest
- type UpdateNamespaceRequest
- type UpdateProfileRequest
- type UpdateRoleRequest
- type UpdateUserMenuRequest
- type UpdateUserRoleRequest
- type User
- type VPCConfig
- type WriteOffRequest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Api ¶
type Api struct { ID int `json:"id" gorm:"primaryKey;column:id;comment:主键ID"` Name string `json:"name" gorm:"column:name;type:varchar(50);not null;comment:API名称"` Path string `json:"path" gorm:"column:path;type:varchar(255);not null;comment:API路径"` Method int `json:"method" gorm:"column:method;type:tinyint(1);not null;comment:HTTP请求方法(1:GET,2:POST,3:PUT,4:DELETE)"` Description string `json:"description" gorm:"column:description;type:varchar(500);comment:API描述"` Version string `json:"version" gorm:"column:version;type:varchar(20);default:v1;comment:API版本"` Category int `json:"category" gorm:"column:category;type:tinyint(1);not null;comment:API分类(1:系统,2:业务)"` IsPublic int `json:"is_public" gorm:"column:is_public;type:tinyint(1);default:0;comment:是否公开(0:否,1:是)"` CreateTime int64 `json:"create_time" gorm:"column:create_time;autoCreateTime;comment:创建时间"` UpdateTime int64 `json:"update_time" gorm:"column:update_time;autoUpdateTime;comment:更新时间"` IsDeleted int `json:"is_deleted" gorm:"column:is_deleted;type:tinyint(1);default:0;comment:是否删除(0:否,1:是)"` }
type AssignUserRoleRequest ¶
type AssignUsersRoleRequest ¶
type BatchDeleteReq ¶
type BatchDeleteReq struct {
IDs []int `json:"ids" binding:"required"`
}
type BatchEventAlertSilenceRequest ¶
type BatchEventAlertSilenceRequest struct { IDs []int `json:"ids" binding:"required"` AlertEventSilenceRequest }
type BatchRequest ¶
type BatchRequest struct {
IDs []int `json:"ids" binding:"required"`
}
type BindResourceReq ¶
type ChangePasswordRequest ¶
type ClusterNamespaces ¶
type ClusterNamespaces struct { ClusterName string `json:"cluster_name"` // 集群名称 ClusterId int `json:"cluster_id"` // 集群ID Namespaces []Namespace `json:"namespaces"` // 命名空间列表 }
ClusterNamespaces 表示一个集群及其命名空间列表
type ContainerCore ¶
type ContainerCore struct { Envs StringList `json:"envs,omitempty" gorm:"comment:环境变量组,格式 key=value"` // 环境变量组 Labels StringList `json:"labels,omitempty" gorm:"comment:标签组,格式 key=value"` // 标签组 Commands StringList `json:"commands,omitempty" gorm:"comment:启动命令组"` // 启动命令组 Args StringList `json:"args,omitempty" gorm:"comment:启动参数,空格分隔"` // 启动参数 CpuRequest string `json:"cpu_request,omitempty" gorm:"comment:CPU 请求量"` // CPU 请求量 CpuLimit string `json:"cpu_limit,omitempty" gorm:"comment:CPU 限制量"` // CPU 限制量 MemoryRequest string `json:"memory_request,omitempty" gorm:"comment:内存请求量"` // 内存请求量 MemoryLimit string `json:"memory_limit,omitempty" gorm:"comment:内存限制量"` // 内存限制量 VolumeJson string `json:"volume_json,omitempty" gorm:"type:text;comment:卷和挂载配置JSON"` // 卷和挂载配置JSON PortJson string `json:"port_json,omitempty" gorm:"type:text;comment:容器和服务端口配置"` // 容器和服务端口配置 // 前端使用字段 EnvsFront []KeyValueItem `json:"envs_front,omitempty" gorm:"-"` // 前端显示的环境变量 LabelsFront []KeyValueItem `json:"labels_front,omitempty" gorm:"-"` // 前端显示的标签 CommandsFront []KeyValueItem `json:"commands_front,omitempty" gorm:"-"` // 前端显示的命令 ArgsFront []KeyValueItem `json:"args_front,omitempty" gorm:"-"` // 前端显示的参数 VolumeJsonFront []K8sOneVolume `json:"volume_json_front,omitempty" gorm:"-"` // 前端显示的卷配置 PortJsonFront []core.ServicePort `json:"port_json_front,omitempty" gorm:"-"` // 前端显示的端口配置 }
ContainerCore 包含容器的核心配置
type CreateApiRequest ¶
type CreateApiRequest struct { Name string `json:"name" binding:"required"` // API名称 Path string `json:"path" binding:"required"` // API路径 Method int `json:"method" binding:"required"` // 请求方法 Description string `json:"description"` // API描述 Version string `json:"version"` // API版本 Category int `json:"category"` // API分类 IsPublic int `json:"is_public" binding:"oneof=0 1"` // 是否公开 }
type CreateMenuRequest ¶
type CreateMenuRequest struct { Name string `json:"name" binding:"required"` // 菜单名称 Path string `json:"path" binding:"required"` // 菜单路径 ParentId int `json:"parent_id" binding:"gte=0"` // 父菜单ID Component string `json:"component"` // 组件 RouteName string `json:"route_name"` // 路由名称 Hidden int `json:"hidden" binding:"oneof=0 1"` // 是否隐藏 Redirect string `json:"redirect"` // 重定向路径 Meta MetaField `json:"meta"` // 元数据 Children []*Menu `json:"children" gorm:"-"` }
type CreateNamespaceRequest ¶
type CreateNamespaceRequest struct { ClusterId int `json:"cluster_id" binding:"required"` Name string `json:"namespace" binding:"required"` Labels []string `json:"labels,omitempty"` // 命名空间标签 Annotations []string `json:"annotations,omitempty"` // 命名空间注解 }
CreateNamespaceRequest 创建新的命名空间请求结构体
type CreateRoleRequest ¶
type DeleteMenuRequest ¶
type DeleteMenuRequest struct {
Id int `json:"id" binding:"required,gt=0"` // 菜单ID
}
type DeleteUserRequest ¶
type DeleteUserRequest struct {
UserId int `json:"user_id"`
}
type EcsBuyWorkOrder ¶
type EcsBuyWorkOrder struct { Vendor string `json:"vendor" gorm:"type:varchar(50);comment:云厂商名称, 例: 阿里云"` // 云厂商名称 Num int `json:"num" gorm:"comment:购买的 ECS 实例数量"` // 购买的 ECS 实例数量 BindLeafNodeId int `json:"bindLeafNodeId" gorm:"comment:绑定的叶子节点 ID"` // 绑定的叶子节点 ID InstanceType string `json:"instance_type" gorm:"type:varchar(100);comment:实例类型, 例: ecs.g8a.2xlarge"` // 实例类型 Hostnames string `json:"hostnames" gorm:"type:text;comment:主机名, 支持多条记录, 用 \\n 分隔"` // 主机名, 支持多条记录, 用 \n 分隔 }
EcsBuyWorkOrder 购买 ECS 工作订单的结构体
type Event ¶
type Event struct { Reason string `json:"reason"` // 事件原因 Message string `json:"message"` // 事件消息 Type string `json:"type"` // 事件类型,例如 Normal, Warning FirstTimestamp time.Time `json:"first_timestamp"` // 第一次发生时间 LastTimestamp time.Time `json:"last_timestamp"` // 最后一次发生时间 Count int32 `json:"count"` // 事件发生次数 Source core.EventSource `json:"source"` // 事件来源 }
Event 命名空间事件响应结构体
type GetApiRequest ¶
type GetApiRequest struct {
ID int `json:"id" binding:"required,gt=0"` // API ID
}
type GetMenuRequest ¶
type GetMenuRequest struct {
Id int `json:"id" binding:"required,gt=0"` // 菜单ID
}
type GetRoleRequest ¶
type GetRoleRequest struct {
Id int `json:"id" binding:"required,gt=0"` // 角色ID
}
type InstanceConfig ¶
type InstanceConfig struct { AvailabilityZone string `json:"instance_availability_zone"` // 可用区 ID InstanceType string `json:"instance_type"` // ECS 实例类型 SystemDiskCategory string `json:"system_disk_category"` // 系统盘类型 SystemDiskName string `json:"system_disk_name"` // 系统盘名称 SystemDiskDescription string `json:"system_disk_description"` // 系统盘描述 ImageID string `json:"image_id"` // 镜像 ID InstanceName string `json:"instance_name"` // 实例名称 VSwitchID string `json:"instance_vswitch_id"` // 关联的 VSwitch ID InternetMaxBandwidthOut int `json:"internet_max_bandwidth_out"` // 最大公网带宽 }
InstanceConfig 表示 ECS 实例的配置
type K8sApp ¶
type K8sApp struct { Model Name string `json:"name" binding:"required,min=1,max=200" gorm:"size:100;comment:应用名称"` // 应用名称 K8sProjectID int `json:"k8s_project_id" gorm:"comment:关联的 Kubernetes 项目ID"` // 关联的 Kubernetes 项目ID TreeNodeID int `json:"tree_node_id" gorm:"comment:关联的树节点ID"` // 关联的树节点ID UserID int `json:"user_id" gorm:"comment:创建者用户ID"` // 创建者用户ID Cluster string `json:"cluster" gorm:"size:100;comment:所属集群名称"` // 所属集群名称 K8sInstances []K8sInstance `json:"k8s_instances" gorm:"foreignKey:K8sAppID;comment:关联的 Kubernetes 实例"` // 关联的 Kubernetes 实例 ServiceType string `json:"service_type,omitempty" gorm:"comment:服务类型"` // 服务类型 Namespace string `json:"namespace,omitempty" gorm:"comment:Kubernetes 命名空间"` // Kubernetes 命名空间 ContainerCore `json:"containerCore"` // 容器核心配置 // 前端使用字段 TreeNodeObj *TreeNode `json:"tree_node_obj,omitempty" gorm:"-"` // 树节点对象 ClusterObj *K8sCluster `json:"cluster_obj,omitempty" gorm:"-"` // 集群对象 ProjectObj *K8sProject `json:"project_obj,omitempty" gorm:"-"` // 项目对象 CreateUserName string `json:"create_username,omitempty" gorm:"-"` // 创建者用户名 NodePath string `json:"node_path,omitempty" gorm:"-"` // 节点路径 K8sProjectName string `json:"k8s_project_name,omitempty" gorm:"-"` // 项目名称 }
K8sApp 面向运维的 Kubernetes 应用
type K8sCluster ¶
type K8sCluster struct { Model Name string `json:"name" binding:"required,min=1,max=200" gorm:"size:100;comment:集群名称"` // 集群名称 NameZh string `json:"name_zh" binding:"required,min=1,max=500" gorm:"size:100;comment:集群中文名称"` // 集群中文名称 UserID int `json:"user_id" gorm:"comment:创建者用户ID"` // 创建者用户ID CpuRequest string `json:"cpu_request,omitempty" gorm:"comment:CPU 请求量"` // CPU 请求量 CpuLimit string `json:"cpu_limit,omitempty" gorm:"comment:CPU 限制量"` // CPU 限制量 MemoryRequest string `json:"memory_request,omitempty" gorm:"comment:内存请求量"` // 内存请求量 MemoryLimit string `json:"memory_limit,omitempty" gorm:"comment:内存限制量"` // 内存限制量 RestrictedNameSpace StringList `json:"restricted_name_space" gorm:"comment:资源限制命名空间"` // 资源限制命名空间 Env string `json:"env,omitempty" gorm:"comment:集群环境,例如 prod, stage, dev, rc, press"` // 集群环境 Version string `json:"version,omitempty" gorm:"comment:集群版本"` // 集群版本 ApiServerAddr string `json:"api_server_addr,omitempty" gorm:"comment:API Server 地址"` // API Server 地址 KubeConfigContent string `json:"kube_config_content,omitempty" gorm:"type:text;comment:kubeConfig 内容"` // kubeConfig 内容 ActionTimeoutSeconds int `json:"action_timeout_seconds,omitempty" gorm:"comment:操作超时时间(秒)"` // 操作超时时间(秒) // 前端使用字段 CreateUserName string `json:"create_username,omitempty" gorm:"-"` // 创建者用户名 LastProbeSuccess bool `json:"last_probe_success,omitempty" gorm:"-"` // 最近一次探测是否成功 LastProbeErrorMsg string `json:"last_probe_error_msg,omitempty" gorm:"-"` // 最近一次探测错误信息 LabelsFront string `json:"labels_front,omitempty" gorm:"-"` // 前端显示的标签字符串 AnnotationsFront string `json:"annotations_front,omitempty" gorm:"-"` // 前端显示的注解字符串 LabelsMap map[string]string `json:"labels_map,omitempty" gorm:"-"` // 标签键值对映射 AnnotationsMap map[string]string `json:"annotations_map,omitempty" gorm:"-"` // 注解键值对映射 }
K8sCluster Kubernetes 集群的配置
type K8sClusterNodesRequest ¶
type K8sClusterNodesRequest struct { ClusterId int `json:"cluster_id" binding:"required"` // 集群id,必填 NodeName string `json:"node_name" binding:"required"` // 节点名称列表,必填 }
K8sClusterNodesRequest 定义集群节点请求的基础结构
type K8sConfigMapRequest ¶
type K8sConfigMapRequest struct { ClusterId int `json:"cluster_id" binding:"required"` // 集群id,必填 Namespace string `json:"namespace"` // 命名空间,可选, 删除用 ConfigMapNames []string `json:"config_map_names"` // ConfigMap 名称,可选, 删除用 ConfigMap *core.ConfigMap `json:"config_map"` // ConfigMap 对象, 可选 }
K8sConfigMapRequest ConfigMap 相关请求结构
type K8sContainerPort ¶
type K8sContainerPort struct { Name string `json:"name,omitempty" gorm:"size:100;comment:端口名称"` // 端口名称(可选) ContainerPort int `json:"container_port" binding:"required" gorm:"comment:容器端口号"` // 容器端口号 Protocol string `json:"protocol,omitempty" gorm:"size:10;comment:协议类型"` // 协议类型,例如 "TCP", "UDP" }
K8sContainerPort 容器的端口配置
type K8sCronjob ¶
type K8sCronjob struct { Model Name string `json:"name" binding:"required,min=1,max=200" gorm:"size:100;comment:定时任务名称"` // 定时任务名称 Cluster string `json:"cluster,omitempty" gorm:"size:100;comment:所属集群"` // 所属集群 TreeNodeID int `json:"tree_node_id" gorm:"comment:关联的树节点ID"` // 关联的树节点ID UserID int `json:"user_id" gorm:"comment:创建者用户ID"` // 创建者用户ID K8sProjectID int `json:"k8s_project_id" gorm:"comment:关联的 Kubernetes 项目ID"` // 关联的 Kubernetes 项目ID Namespace string `json:"namespace,omitempty" gorm:"comment:命名空间"` // 命名空间 Schedule string `json:"schedule,omitempty" gorm:"comment:调度表达式"` // 调度表达式 Image string `json:"image,omitempty" gorm:"comment:镜像"` // 镜像 Commands StringList `json:"commands,omitempty" gorm:"comment:启动命令组"` // 启动命令组 Args StringList `json:"args,omitempty" gorm:"comment:启动参数,空格分隔"` // 启动参数 // 前端使用字段 CommandsFront []KeyValueItem `json:"commands_front,omitempty" gorm:"-"` // 前端显示的命令 ArgsFront []KeyValueItem `json:"args_front,omitempty" gorm:"-"` // 前端显示的参数 LastScheduleTime string `json:"last_schedule_time,omitempty" gorm:"-"` // 最近一次调度时间 LastSchedulePodName string `json:"last_schedule_pod_name,omitempty" gorm:"-"` // 最近一次调度的 Pod 名称 CreateUserName string `json:"create_username,omitempty" gorm:"-"` // 创建者用户名 NodePath string `json:"node_path,omitempty" gorm:"-"` // 节点路径 Key string `json:"key" gorm:"-"` // 前端表格使用的Key TreeNodeObj *TreeNode `json:"tree_node_obj,omitempty" gorm:"-"` // 树节点对象 ClusterObj *K8sCluster `json:"cluster_obj,omitempty" gorm:"-"` // 集群对象 ProjectObj *K8sProject `json:"project_obj,omitempty" gorm:"-"` // 项目对象 K8sProjectName string `json:"k8s_project_name,omitempty" gorm:"-"` // 项目名称 }
K8sCronjob Kubernetes 定时任务的配置
type K8sDeploymentRequest ¶
type K8sDeploymentRequest struct { ClusterId int `json:"cluster_id" binding:"required"` // 集群名称,必填 Namespace string `json:"namespace" binding:"required"` // 命名空间,必填 DeploymentNames []string `json:"deployment_names"` // Deployment 名称,可选 DeploymentYaml *appsv1.Deployment `json:"deployment_yaml"` // Deployment 对象, 可选 }
K8sDeploymentRequest Deployment 相关请求结构
type K8sEnvVar ¶
type K8sEnvVar struct { Name string `json:"name" binding:"required" gorm:"size:100;comment:环境变量名称"` // 环境变量名称 Value string `json:"value" gorm:"size:500;comment:环境变量值"` // 环境变量值 }
K8sEnvVar 环境变量的键值对
type K8sHTTPGetAction ¶
type K8sHTTPGetAction struct { Path string `json:"path" binding:"required" gorm:"size:255;comment:探测路径"` // 探测路径,必填,长度限制为255字符 Port int `json:"port" binding:"required" gorm:"comment:探测端口号"` // 探测端口号,必填 Scheme string `json:"scheme,omitempty" gorm:"size:10;comment:协议类型"` // 协议类型,例如 "HTTP", "HTTPS",长度限制为10字符 }
K8sHTTPGetAction HTTP GET 探测动作
type K8sInstance ¶
type K8sInstance struct { Model Name string `json:"name" binding:"required,min=1,max=200" gorm:"size:100;comment:实例名称"` // 实例名称 UserID int `json:"user_id" gorm:"comment:创建者用户ID"` // 创建者用户ID Cluster string `json:"cluster,omitempty" gorm:"size:100;comment:所属集群"` // 所属集群 ContainerCore `json:"containerCore"` // 容器核心配置 Image string `json:"image,omitempty" gorm:"comment:镜像"` // 镜像 Replicas int `json:"replicas,omitempty" gorm:"comment:副本数量"` // 副本数量 K8sAppID int `json:"k8s_appId" gorm:"comment:关联的 Kubernetes 应用ID"` // 关联的 Kubernetes 应用ID // 前端使用字段 K8sAppName string `json:"k8s_app_name,omitempty" gorm:"-"` // 应用名称 CreateUserName string `json:"create_username,omitempty" gorm:"-"` // 创建者用户名 NodePath string `json:"node_path,omitempty" gorm:"-"` // 节点路径 Key string `json:"key" gorm:"-"` // 前端表格使用的Key Namespace string `json:"namespace,omitempty" gorm:"-"` // 命名空间 K8sAppObj *K8sApp `json:"k8s_app_obj,omitempty" gorm:"-"` // 应用对象 ClusterObj *K8sCluster `json:"cluster_obj,omitempty" gorm:"-"` // 集群对象 ReadyStatus string `json:"ready_status,omitempty" gorm:"-"` // 就绪状态 }
K8sInstance Kubernetes 实例的配置
type K8sNode ¶
type K8sNode struct { Name string `json:"name" binding:"required,min=1,max=200" gorm:"size:100;comment:节点名称"` // 节点名称 ClusterID int `json:"cluster_id" gorm:"index;not null;comment:所属集群ID"` // 所属集群ID Status string `json:"status" gorm:"comment:节点状态,例如 Ready, NotReady, SchedulingDisabled"` // 节点状态 ScheduleEnable bool `json:"schedule_enable" gorm:"comment:节点是否可调度"` // 节点是否可调度 Roles []string `json:"roles" gorm:"type:text;serializer:json;comment:节点角色,例如 master, worker"` // 节点角色 Age string `json:"age" gorm:"comment:节点存在时间,例如 5d"` // 节点存在时间 IP string `json:"ip" gorm:"comment:节点内部IP"` // 节点内部IP PodNum int `json:"pod_num" gorm:"comment:节点上的 Pod 数量"` // 节点上的 Pod 数量 CpuRequestInfo string `json:"cpu_request_info" gorm:"comment:CPU 请求信息,例如 500m/2"` // CPU 请求信息 CpuLimitInfo string `json:"cpu_limit_info" gorm:"comment:CPU 限制信息,例如 1/2"` // CPU 限制信息 CpuUsageInfo string `json:"cpu_usage_info" gorm:"comment:CPU 使用信息,例如 300m/2 (15%)"` // CPU 使用信息 MemoryRequestInfo string `json:"memory_request_info" gorm:"comment:内存请求信息,例如 1Gi/8Gi"` // 内存请求信息 MemoryLimitInfo string `json:"memory_limit_info" gorm:"comment:内存限制信息,例如 2Gi/8Gi"` // 内存限制信息 MemoryUsageInfo string `json:"memory_usage_info" gorm:"comment:内存使用信息,例如 1.5Gi/8Gi (18.75%)"` // 内存使用信息 PodNumInfo string `json:"pod_num_info" gorm:"comment:Pod 数量信息,例如 10/50 (20%)"` // Pod 数量信息 CpuCores string `json:"cpu_cores" gorm:"comment:CPU 核心信息,例如 2/4"` // CPU 核心信息 MemGibs string `json:"mem_gibs" gorm:"comment:内存信息,例如 8Gi/16Gi"` // 内存信息 EphemeralStorage string `json:"ephemeral_storage" gorm:"comment:临时存储信息,例如 100Gi/200Gi"` // 临时存储信息 KubeletVersion string `json:"kubelet_version" gorm:"comment:Kubelet 版本"` // Kubelet 版本 CriVersion string `json:"cri_version" gorm:"comment:容器运行时接口版本"` // 容器运行时接口版本 OsVersion string `json:"os_version" gorm:"comment:操作系统版本"` // 操作系统版本 KernelVersion string `json:"kernel_version" gorm:"comment:内核版本"` // 内核版本 Labels []string `json:"labels" gorm:"type:text;serializer:json;comment:节点标签列表"` // 节点标签列表 LabelsFront string `json:"labels_front" gorm:"-"` // 前端显示的标签字符串,格式为多行 key=value TaintsFront string `json:"taints_front" gorm:"-"` // 前端显示的 Taints 字符串,格式为多行 key=value:Effect LabelPairs map[string]string `json:"label_pairs" gorm:"-"` // 标签键值对映射 Annotation map[string]string `json:"annotation" gorm:"type:text;serializer:json;comment:注解键值对映射"` // 注解键值对映射 Conditions []core.NodeCondition `json:"conditions" gorm:"-"` // 节点条件列表 Taints []core.Taint `json:"taints" gorm:"-"` // 节点 Taints 列表 Events []OneEvent `json:"events" gorm:"-"` // 节点相关事件列表,包含最近的事件信息 CreatedAt time.Time `json:"created_at" gorm:"comment:创建时间"` // 创建时间 UpdatedAt time.Time `json:"updated_at" gorm:"comment:更新时间"` // 更新时间 }
K8sNode Kubernetes 节点
type K8sOneVolume ¶
type K8sOneVolume struct { Type string `json:"type" gorm:"comment:卷类型,如 hostPath, configMap, emptyDir, pvc"` // 卷类型 Name string `json:"name" gorm:"size:100;comment:卷名称"` // 卷名称 MountPath string `json:"mount_path" gorm:"size:255;comment:挂载路径"` // 挂载路径 SubPath string `json:"sub_path,omitempty" gorm:"size:255;comment:子路径"` // 子路径(可选) PvcName string `json:"pvc_name,omitempty" gorm:"size:100;comment:PVC名称,当类型为 pvc 时使用"` // PVC名称(可选) CmName string `json:"cm_name,omitempty" gorm:"size:100;comment:ConfigMap名称,当类型为 configMap 时使用"` // ConfigMap名称(可选) HostPath string `json:"host_path,omitempty" gorm:"size:255;comment:Host路径,当类型为 hostPath 时使用"` // Host路径(可选) HostPathType string `json:"host_path_type,omitempty" gorm:"size:50;comment:Host路径类型,当类型为 hostPath 时使用"` // Host路径类型(可选) }
K8sOneVolume 单个卷的配置
type K8sPod ¶
type K8sPod struct { Model Name string `json:"name" binding:"required,min=1,max=200" gorm:"size:200;comment:Pod 名称"` // Pod 名称 Namespace string `json:"namespace" binding:"required,min=1,max=200" gorm:"size:200;comment:Pod 所属的命名空间"` // Pod 所属的命名空间 Status string `json:"status" gorm:"comment:Pod 状态,例如 Running, Pending"` // Pod 状态,例如 "Running", "Pending" NodeName string `json:"node_name" gorm:"index;comment:Pod 所在节点名称"` // Pod 所在节点名称 Labels map[string]string `json:"labels" gorm:"type:text;serializer:json;comment:Pod 标签键值对"` // Pod 标签键值对 Annotations map[string]string `json:"annotations" gorm:"type:text;serializer:json;comment:Pod 注解键值对"` // Pod 注解键值对 Containers []K8sPodContainer `json:"containers" gorm:"-"` // Pod 内的容器信息,前端使用 }
K8sPod 单个 Pod 的模型
type K8sPodContainer ¶
type K8sPodContainer struct { Name string `json:"name" binding:"required,min=1,max=200" gorm:"size:200;comment:容器名称"` // 容器名称 Image string `json:"image" binding:"required" gorm:"size:500;comment:容器镜像"` // 容器镜像 Command StringList `json:"command,omitempty" gorm:"type:text;serializer:json;comment:启动命令组"` // 启动命令组 Args StringList `json:"args,omitempty" gorm:"type:text;serializer:json;comment:启动参数,空格分隔"` // 启动参数 Envs []K8sEnvVar `json:"envs,omitempty" gorm:"type:text;serializer:json;comment:环境变量组"` // 环境变量组 Ports []K8sContainerPort `json:"ports,omitempty" gorm:"type:text;serializer:json;comment:容器端口配置"` // 容器端口配置 Resources ResourceRequirements `json:"resources,omitempty" gorm:"type:text;serializer:json;comment:资源请求与限制"` // 资源请求与限制 VolumeMounts []K8sVolumeMount `json:"volume_mounts,omitempty" gorm:"type:text;serializer:json;comment:卷挂载配置"` // 卷挂载配置 LivenessProbe *K8sProbe `json:"liveness_probe,omitempty" gorm:"type:text;serializer:json;comment:存活探测配置"` // 存活探测配置 ReadinessProbe *K8sProbe `json:"readiness_probe,omitempty" gorm:"type:text;serializer:json;comment:就绪探测配置"` // 就绪探测配置 ImagePullPolicy string `json:"image_pull_policy,omitempty" gorm:"size:50;comment:镜像拉取策略"` // 镜像拉取策略,例如 "Always", "IfNotPresent", "Never" }
K8sPodContainer Pod 中单个容器的模型
type K8sPodRequest ¶
type K8sPodRequest struct { ClusterId int `json:"cluster_id" binding:"required"` // 集群名称,必填 Pod *core.Pod `json:"pod"` // Pod 对象 }
K8sPodRequest 创建 Pod 的请求结构
type K8sProbe ¶
type K8sProbe struct { HTTPGet *K8sHTTPGetAction `json:"http_get,omitempty" gorm:"type:text;serializer:json;comment:HTTP GET 探测配置"` // HTTP GET 探测 // TCPSocket 和 Exec 探测也可以根据需要添加 InitialDelaySeconds int `json:"initial_delay_seconds" gorm:"comment:探测初始延迟时间(秒)"` // 探测初始延迟时间 PeriodSeconds int `json:"period_seconds" gorm:"comment:探测间隔时间(秒)"` // 探测间隔时间 TimeoutSeconds int `json:"timeout_seconds" gorm:"comment:探测超时时间(秒)"` // 探测超时时间 SuccessThreshold int `json:"success_threshold" gorm:"comment:探测成功阈值"` // 探测成功阈值 FailureThreshold int `json:"failure_threshold" gorm:"comment:探测失败阈值"` // 探测失败阈值 }
K8sProbe 探测配置
type K8sProject ¶
type K8sProject struct { Model Name string `json:"name" binding:"required,min=1,max=200" gorm:"size:100;comment:项目名称"` // 项目名称 NameZh string `json:"name_zh" binding:"required,min=1,max=500" gorm:"size:100;comment:项目中文名称"` // 项目中文名称 Cluster string `json:"cluster" gorm:"size:100;comment:所属集群名称"` // 所属集群名称 TreeNodeID int `json:"tree_node_id" gorm:"comment:关联的树节点ID"` // 关联的树节点ID UserID int `json:"user_id" gorm:"comment:创建者用户ID"` // 创建者用户ID K8sApps []K8sApp `json:"k8s_apps,omitempty" gorm:"foreignKey:K8sProjectID;comment:关联的 Kubernetes 应用"` // 关联的 Kubernetes 应用 // 前端使用字段 CreateUserName string `json:"create_username,omitempty" gorm:"-"` // 创建者用户名 NodePath string `json:"node_path,omitempty" gorm:"-"` // 节点路径 Key string `json:"key" gorm:"-"` // 前端表格使用的Key TreeNodeObj *TreeNode `json:"tree_node_obj,omitempty" gorm:"-"` // 树节点对象 }
K8sProject Kubernetes 项目的配置
type K8sResourceList ¶
type K8sResourceList struct { CPU string `json:"cpu,omitempty" gorm:"size:50;comment:CPU 数量,例如 '500m', '2'"` // CPU 数量,例如 "500m", "2" Memory string `json:"memory,omitempty" gorm:"size:50;comment:内存数量,例如 '1Gi', '512Mi'"` // 内存数量,例如 "1Gi", "512Mi" }
K8sResourceList 资源的具体数量
type K8sServiceRequest ¶
type K8sServiceRequest struct { ClusterId int `json:"cluster_id" binding:"required"` // 集群id,必填 Namespace string `json:"namespace"` // 命名空间,必填 ServiceNames []string `json:"service_names"` // Service 名称,可选 ServiceYaml *core.Service `json:"service_yaml"` // Service 对象, 可选 }
K8sServiceRequest Service 相关请求结构
type K8sVolumeMount ¶
type K8sVolumeMount struct { Name string `json:"name" binding:"required" gorm:"size:100;comment:卷名称"` // 卷名称,必填,长度限制为100字符 MountPath string `json:"mount_path" binding:"required" gorm:"size:255;comment:挂载路径"` // 挂载路径,必填,长度限制为255字符 ReadOnly bool `json:"read_only,omitempty" gorm:"comment:是否只读"` // 是否只读 SubPath string `json:"sub_path,omitempty" gorm:"size:255;comment:子路径"` // 子路径(可选),长度限制为255字符 }
K8sVolumeMount 卷的挂载配置
type K8sYamlTask ¶
type K8sYamlTask struct { Model Name string `json:"name" gorm:"type:varchar(255);comment:YAML 任务名称"` // YAML 任务名称 UserID int `json:"user_id" gorm:"comment:创建者用户ID"` // 创建者用户ID TemplateID int `json:"template_id" gorm:"comment:关联的模板ID"` // 关联的模板ID ClusterId int `json:"cluster_id,omitempty" gorm:"comment:集群名称"` // 集群名称 Variables StringList `json:"variables,omitempty" gorm:"type:text;comment:yaml 变量,格式 k=v,k=v"` // YAML 变量 Status string `json:"status,omitempty" gorm:"comment:当前状态"` // 当前状态 ApplyResult string `json:"apply_result,omitempty" gorm:"comment:apply 后的返回数据"` // apply 结果 // 前端使用字段 Key string `json:"key" gorm:"-"` // 前端表格使用的Key VariablesFront string `json:"variables_front,omitempty" gorm:"-"` // 前端显示的变量 YamlString string `json:"yaml_string,omitempty" gorm:"-"` // YAML 字符串 TemplateName string `json:"template_name,omitempty" gorm:"-"` // 模板名称 CreateUserName string `json:"create_username,omitempty" gorm:"-"` // 创建者用户名 }
K8sYamlTask Kubernetes YAML 任务的配置
type K8sYamlTemplate ¶
type K8sYamlTemplate struct { Model Name string `json:"name" binding:"required,min=1,max=50" gorm:"size:100;comment:模板名称"` // 模板名称 UserID int `json:"user_id" gorm:"comment:创建者用户ID"` // 创建者用户ID Content string `json:"content,omitempty" gorm:"type:text;comment:yaml 模板内容"` // YAML 模板内容 ClusterId int `json:"cluster_id,omitempty" gorm:"comment:对应集群id"` // 前端使用字段 Key string `json:"key" gorm:"-"` // 前端表格使用的Key CreateUserName string `json:"create_username,omitempty" gorm:"-"` // 创建者用户名 }
K8sYamlTemplate Kubernetes YAML 模板的配置
type KeyValueItem ¶
type LabelK8sNodesRequest ¶
type LabelK8sNodesRequest struct { *K8sClusterNodesRequest ModType string `json:"mod_type" binding:"required,oneof=add del"` // 操作类型,必填,值为 "add" 或 "del" Labels []string `json:"labels" binding:"required"` // 标签键值对,必填 }
LabelK8sNodesRequest 定义为节点添加标签的请求结构
type ListApisRequest ¶
type ListMenusRequest ¶
type ListRolesRequest ¶
type ListUserRolesRequest ¶
type Menu ¶
type Menu struct { ID int `json:"id" gorm:"primaryKey;column:id;comment:菜单ID"` Name string `json:"name" gorm:"column:name;type:varchar(50);not null;comment:菜单显示名称"` ParentID int `json:"parent_id" gorm:"column:parent_id;default:0;comment:上级菜单ID,0表示顶级菜单"` Path string `json:"path" gorm:"column:path;type:varchar(255);not null;comment:前端路由访问路径"` Component string `json:"component" gorm:"column:component;type:varchar(255);not null;comment:前端组件文件路径"` RouteName string `json:"route_name" gorm:"column:route_name;type:varchar(50);not null;comment:前端路由名称,需唯一"` Hidden int `json:"hidden" gorm:"column:hidden;type:tinyint(1);default:0;comment:菜单是否隐藏(0:显示 1:隐藏)"` Redirect string `json:"redirect" gorm:"column:redirect;type:varchar(255);default:'';comment:重定向路径"` Meta MetaField `json:"meta" gorm:"column:meta;type:json;serializer:json;comment:菜单元数据"` CreateTime int64 `json:"create_time" gorm:"column:create_time;autoCreateTime;comment:记录创建时间戳"` UpdateTime int64 `json:"update_time" gorm:"column:update_time;autoUpdateTime;comment:记录最后更新时间戳"` IsDeleted int `json:"is_deleted" gorm:"column:is_deleted;type:tinyint(1);default:0;comment:逻辑删除标记(0:未删除 1:已删除)"` Children []*Menu `json:"children" gorm:"-"` // 子菜单列表,不映射到数据库 }
type Meta ¶
type Meta struct { Order int `json:"order,omitempty"` // 排序 Title string `json:"title"` // 标题 AffixTab bool `json:"affixTab,omitempty"` // 是否固定标签页 HideInMenu bool `json:"hideInMenu,omitempty"` // 是否在菜单中隐藏 Icon string `json:"icon"` // 图标 }
Meta 菜单元数据
type Model ¶
type Model struct { ID int `json:"id" gorm:"primaryKey;autoIncrement;comment:主键ID"` // 主键ID,自增 CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime;comment:创建时间"` // 创建时间,自动记录 UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime;comment:更新时间"` // 更新时间,自动记录 DeletedAt soft_delete.DeletedAt `json:"deleted_at" gorm:"index;comment:删除时间"` // 软删除时间,使用普通索引 }
type MonitorAlertEvent ¶
type MonitorAlertEvent struct { Model AlertName string `json:"alertName" binding:"required,min=1,max=200" gorm:"size:200;comment:告警名称"` Fingerprint string `json:"fingerprint" binding:"required,min=1,max=50" gorm:"uniqueIndex;size:100;comment:告警唯一ID"` Status string `json:"status,omitempty" gorm:"size:50;comment:告警状态(如告警中、已屏蔽、已认领、已恢复)"` RuleID int `json:"ruleId" gorm:"comment:关联的告警规则ID"` SendGroupID int `json:"sendGroupId" gorm:"comment:关联的发送组ID"` EventTimes int `json:"eventTimes" gorm:"comment:触发次数"` SilenceID string `json:"silenceId,omitempty" gorm:"size:100;comment:AlertManager返回的静默ID"` RenLingUserID int `json:"renLingUserId" gorm:"comment:认领告警的用户ID"` Labels StringList `json:"labels,omitempty" gorm:"type:text;comment:标签组,格式为 key=v"` // 前端使用字段 Key string `json:"key" gorm:"-"` AlertRuleName string `json:"alertRuleName,omitempty" gorm:"-"` SendGroupName string `json:"sendGroupName,omitempty" gorm:"-"` Alert template.Alert `json:"alert,omitempty" gorm:"-"` SendGroup *MonitorSendGroup `json:"sendGroup,omitempty" gorm:"-"` RenLingUser *User `json:"renLingUser,omitempty" gorm:"-"` Rule *MonitorAlertRule `json:"rule,omitempty" gorm:"-"` LabelsMatcher map[string]string `json:"labelsMatcher,omitempty" gorm:"-"` AnnotationsMatcher map[string]string `json:"annotationsMatcher,omitempty" gorm:"-"` }
MonitorAlertEvent 告警事件与相关实体的关系
type MonitorAlertManagerPool ¶
type MonitorAlertManagerPool struct { Model Name string `` /* 147-byte string literal not displayed */ AlertManagerInstances StringList `json:"alertManagerInstances" gorm:"type:text;comment:选择多个AlertManager实例"` UserID int `json:"userId" gorm:"comment:创建该实例池的用户ID"` ResolveTimeout string `json:"resolveTimeout,omitempty" gorm:"size:50;comment:默认恢复时间"` GroupWait string `json:"groupWait,omitempty" gorm:"size:50;comment:默认分组第一次等待时间"` GroupInterval string `json:"groupInterval,omitempty" gorm:"size:50;comment:默认分组等待间隔"` RepeatInterval string `json:"repeatInterval,omitempty" gorm:"size:50;comment:默认重复发送时间"` GroupBy StringList `json:"groupBy,omitempty" gorm:"type:text;comment:分组的标签"` Receiver string `json:"receiver,omitempty" gorm:"size:100;comment:兜底接收者"` // 前端使用字段 GroupByFront string `json:"groupByFront,omitempty" gorm:"-"` Key string `json:"key" gorm:"-"` CreateUserName string `json:"createUserName,omitempty" gorm:"-"` }
MonitorAlertManagerPool AlertManager 实例池的配置
type MonitorAlertRule ¶
type MonitorAlertRule struct { Model Name string `` /* 135-byte string literal not displayed */ UserID int `json:"userId" gorm:"comment:创建该告警规则的用户ID"` PoolID int `json:"poolId" gorm:"comment:关联的Prometheus实例池ID"` SendGroupID int `json:"sendGroupId" gorm:"comment:关联的发送组ID"` TreeNodeID int `json:"treeNodeId" gorm:"comment:绑定的树节点ID"` Enable int `json:"enable" gorm:"type:int;comment:是否启用告警规则:1启用,2禁用"` Expr string `json:"expr" gorm:"type:text;comment:告警规则表达式"` Severity string `json:"severity,omitempty" gorm:"size:50;comment:告警级别,如critical、warning"` GrafanaLink string `json:"grafanaLink,omitempty" gorm:"type:text;comment:Grafana大盘链接"` ForTime string `json:"forTime,omitempty" gorm:"size:50;comment:持续时间,达到此时间才触发告警"` Labels StringList `json:"labels,omitempty" gorm:"type:text;comment:标签组,格式为 key=v"` Annotations StringList `json:"annotations,omitempty" gorm:"type:text;comment:注解,格式为 key=v"` // 前端使用字段 NodePath string `json:"nodePath,omitempty" gorm:"-"` TreeNodeIDs []int `json:"treeNodeIds,omitempty" gorm:"-"` Key string `json:"key" gorm:"-"` PoolName string `json:"poolName,omitempty" gorm:"-"` SendGroupName string `json:"sendGroupName,omitempty" gorm:"-"` CreateUserName string `json:"createUserName,omitempty" gorm:"-"` LabelsFront string `json:"labelsFront,omitempty" gorm:"-"` }
MonitorAlertRule 告警规则的配置
type MonitorOnDutyChange ¶
type MonitorOnDutyChange struct { Model OnDutyGroupID int `json:"onDutyGroupId" gorm:"comment:值班组ID,用于标识值班历史记录"` UserID int `json:"userId" gorm:"comment:创建该换班记录的用户ID"` Date string `json:"date" gorm:"comment:计划哪一天进行换班的日期"` OriginUserID int `json:"originUserId" gorm:"comment:换班前原定的值班人员用户ID"` OnDutyUserID int `json:"onDutyUserId" gorm:"comment:换班后值班人员的用户ID"` // 前端使用字段 TargetUserName string `json:"targetUserName,omitempty" gorm:"-"` OriginUserName string `json:"originUserName,omitempty" gorm:"-"` Key string `json:"key" gorm:"-"` PoolName string `json:"poolName,omitempty" gorm:"-"` CreateUserName string `json:"createUserName,omitempty" gorm:"-"` }
MonitorOnDutyChange 值班换班记录
type MonitorOnDutyGroup ¶
type MonitorOnDutyGroup struct { Model Name string `` /* 168-byte string literal not displayed */ UserID int `json:"userId" gorm:"comment:创建该值班组的用户ID"` Members []*User `json:"members" gorm:"many2many:monitor_onDuty_users;comment:值班组成员列表,多对多关系"` ShiftDays int `json:"shiftDays,omitempty" gorm:"type:int;comment:轮班周期,以天为单位"` YesterdayNormalDutyUserID int `json:"yesterdayNormalDutyUserId" gorm:"comment:昨天的正常排班值班人ID,由cron任务设置"` // 前端使用字段 TodayDutyUser *User `json:"todayDutyUser,omitempty" gorm:"-"` UserNames []string `json:"userNames,omitempty" gorm:"-"` Key string `json:"key" gorm:"-"` CreateUserName string `json:"createUserName,omitempty" gorm:"-"` }
MonitorOnDutyGroup 值班组的配置
type MonitorOnDutyHistory ¶
type MonitorOnDutyHistory struct { Model OnDutyGroupID int `json:"onDutyGroupId" gorm:"index;comment:值班组ID,用于标识值班历史记录"` DateString string `json:"dateString" gorm:"type:varchar(50);comment:日期"` OnDutyUserID int `json:"onDutyUserId" gorm:"comment:当天值班人员的用户ID"` OriginUserID int `json:"originUserId" gorm:"comment:原计划的值班人员用户ID"` // 前端使用字段 Key string `json:"key" gorm:"-"` PoolName string `json:"poolName,omitempty" gorm:"-"` CreateUserName string `json:"createUserName,omitempty" gorm:"-"` }
MonitorOnDutyHistory 值班历史记录
type MonitorRecordRule ¶
type MonitorRecordRule struct { Model Name string `` /* 141-byte string literal not displayed */ RecordName string `` /* 142-byte string literal not displayed */ UserID int `json:"userId" gorm:"comment:创建该记录规则的用户ID"` PoolID int `json:"poolId" gorm:"comment:关联的Prometheus实例池ID"` TreeNodeID int `json:"treeNodeId" gorm:"comment:绑定的树节点ID"` Enable int `json:"enable" gorm:"type:int;comment:是否启用记录规则:1启用,2禁用"` ForTime string `json:"forTime,omitempty" gorm:"size:50;comment:持续时间,达到此时间才触发记录规则"` Expr string `json:"expr" gorm:"type:text;comment:记录规则表达式"` // 前端使用字段 NodePath string `json:"nodePath,omitempty" gorm:"-"` TreeNodeIDs []int `json:"treeNodeIds,omitempty" gorm:"-"` Key string `json:"key" gorm:"-"` PoolName string `json:"poolName,omitempty" gorm:"-"` SendGroupName string `json:"sendGroupName,omitempty" gorm:"-"` CreateUserName string `json:"createUserName,omitempty" gorm:"-"` LabelsFront string `json:"labelsFront,omitempty" gorm:"-"` AnnotationsFront string `json:"annotationsFront,omitempty" gorm:"-"` LabelsM map[string]string `json:"labelsM,omitempty" gorm:"-"` AnnotationsM map[string]string `json:"annotationsM,omitempty" gorm:"-"` }
MonitorRecordRule 记录规则的配置
type MonitorScrapeJob ¶
type MonitorScrapeJob struct { Model Name string `` /* 141-byte string literal not displayed */ UserID int `json:"userId" gorm:"comment:任务关联的用户ID"` Enable int `json:"enable" gorm:"type:int;comment:是否启用采集任务:1为启用,2为禁用"` ServiceDiscoveryType string `json:"serviceDiscoveryType,omitempty" gorm:"size:50;comment:服务发现类型,支持 k8s 或 http"` MetricsPath string `json:"metricsPath,omitempty" gorm:"size:255;comment:监控采集的路径"` Scheme string `json:"scheme,omitempty" gorm:"size:10;comment:监控采集的协议方案(如 http 或 https)"` ScrapeInterval int `json:"scrapeInterval,omitempty" gorm:"default:30;type:int;comment:采集的时间间隔(秒)"` ScrapeTimeout int `json:"scrapeTimeout,omitempty" gorm:"default:10;type:int;comment:采集的超时时间(秒)"` PoolID int `json:"poolId" gorm:"comment:关联的采集池ID"` RelabelConfigsYamlString string `json:"relabelConfigsYamlString,omitempty" gorm:"type:text;comment:relabel配置的YAML字符串"` RefreshInterval int `json:"refreshInterval,omitempty" gorm:"type:int;comment:刷新目标的时间间隔(针对服务树http类型,秒)"` Port int `json:"port,omitempty" gorm:"type:int;comment:端口号(针对服务树服务发现接口)"` TreeNodeIDs StringList `json:"treeNodeIds,omitempty" gorm:"type:text;comment:服务树接口绑定的树节点ID列表,用于获取IP列表"` KubeConfigFilePath string `json:"kubeConfigFilePath,omitempty" gorm:"size:255;comment:连接apiServer的Kubernetes配置文件路径"` TlsCaFilePath string `json:"tlsCaFilePath,omitempty" gorm:"size:255;comment:TLS CA证书文件路径"` TlsCaContent string `json:"tlsCaContent,omitempty" gorm:"type:text;comment:TLS CA证书内容"` BearerToken string `json:"bearerToken,omitempty" gorm:"type:text;comment:鉴权Token内容"` BearerTokenFile string `json:"bearerTokenFile,omitempty" gorm:"size:255;comment:鉴权Token文件路径"` KubernetesSdRole string `json:"kubernetesSdRole,omitempty" gorm:"size:50;comment:Kubernetes服务发现角色"` TreeNodeNames []string `json:"treeNodeNames,omitempty" gorm:"-"` CreateUserName string `json:"createUserName,omitempty" gorm:"-"` }
MonitorScrapeJob 监控采集任务的配置
type MonitorScrapePool ¶
type MonitorScrapePool struct { Model Name string `` /* 138-byte string literal not displayed */ PrometheusInstances StringList `json:"prometheusInstances,omitempty" gorm:"type:text;comment:选择多个Prometheus实例"` AlertManagerInstances StringList `json:"alertManagerInstances,omitempty" gorm:"type:text;comment:选择多个AlertManager实例"` UserID int `json:"userId" gorm:"comment:创建该采集池的用户ID"` ScrapeInterval int `json:"scrapeInterval,omitempty" gorm:"default:30;type:int;comment:采集间隔(秒)"` ScrapeTimeout int `json:"scrapeTimeout,omitempty" gorm:"default:10;type:int;comment:采集超时时间(秒)"` ExternalLabels StringList `` /* 135-byte string literal not displayed */ SupportAlert int `json:"supportAlert" gorm:"type:int;comment:是否支持告警:1支持,2不支持"` SupportRecord int `json:"supportRecord" gorm:"type:int;comment:是否支持预聚合:1支持,2不支持"` RemoteReadUrl string `json:"remoteReadUrl,omitempty" gorm:"size:255;comment:远程读取的地址"` AlertManagerUrl string `json:"alertManagerUrl,omitempty" gorm:"size:255;comment:AlertManager的地址"` RuleFilePath string `json:"ruleFilePath,omitempty" gorm:"size:255;comment:规则文件路径"` RecordFilePath string `json:"recordFilePath,omitempty" gorm:"size:255;comment:记录文件路径"` RemoteWriteUrl string `json:"remoteWriteUrl,omitempty" gorm:"size:255;comment:远程写入的地址"` RemoteTimeoutSeconds int `json:"remoteTimeoutSeconds,omitempty" gorm:"default:5;type:int;comment:远程写入的超时时间(秒)"` // 前端使用字段 ExternalLabelsFront string `json:"externalLabelsFront,omitempty" gorm:"-"` Key string `json:"key" gorm:"-"` CreateUserName string `json:"createUserName,omitempty" gorm:"-"` }
MonitorScrapePool 采集池的配置
type MonitorSendGroup ¶
type MonitorSendGroup struct { Model Name string `` /* 174-byte string literal not displayed */ NameZh string `` /* 182-byte string literal not displayed */ Enable int `json:"enable" gorm:"type:int;comment:是否启用发送组:1启用,2禁用"` UserID int `json:"userId" gorm:"comment:创建该发送组的用户ID"` PoolID int `json:"poolId" gorm:"comment:关联的AlertManager实例ID"` OnDutyGroupID int `json:"onDutyGroupId" gorm:"comment:值班组ID"` StaticReceiveUsers []*User `json:"staticReceiveUsers" gorm:"many2many:static_receive_users;comment:静态配置的接收人列表,多对多关系"` FeiShuQunRobotToken string `json:"feiShuQunRobotToken,omitempty" gorm:"size:255;comment:飞书机器人Token,对应IM群"` RepeatInterval string `json:"repeatInterval,omitempty" gorm:"size:50;comment:默认重复发送时间"` SendResolved int `json:"sendResolved" gorm:"type:int;comment:是否发送恢复通知:1发送,2不发送"` NotifyMethods StringList `json:"notifyMethods,omitempty" gorm:"type:text;comment:通知方法,如:email, im, phone, sms"` NeedUpgrade int `json:"needUpgrade" gorm:"type:int;comment:是否需要告警升级:1需要,2不需要"` FirstUpgradeUsers []*User `json:"firstUpgradeUsers" gorm:"many2many:first_upgrade_users;comment:第一升级人列表,多对多关系"` UpgradeMinutes int `json:"upgradeMinutes,omitempty" gorm:"type:int;comment:告警多久未恢复则升级(分钟)"` SecondUpgradeUsers []*User `json:"secondUpgradeUsers" gorm:"many2many:second_upgrade_users;comment:第二升级人列表,多对多关系"` // 前端使用字段 TreeNodeIDs []int `json:"treeNodeIds,omitempty" gorm:"-"` FirstUserNames []string `json:"firstUserNames,omitempty" gorm:"-"` Key string `json:"key" gorm:"-"` PoolName string `json:"poolName,omitempty" gorm:"-"` OnDutyGroupName string `json:"onDutyGroupName,omitempty" gorm:"-"` CreateUserName string `json:"createUserName,omitempty" gorm:"-"` }
MonitorSendGroup 发送组的配置
type Namespace ¶
type Namespace struct { Name string `json:"name"` // 命名空间名称 UID string `json:"uid"` // 命名空间唯一标识符 Status string `json:"status"` // 命名空间状态,例如 Active CreationTime time.Time `json:"creation_time"` // 创建时间 Labels []string `json:"labels,omitempty"` // 命名空间标签 Annotations []string `json:"annotations,omitempty"` // 命名空间注解 }
Namespace 命名空间响应结构体
type OnDutyPlanResp ¶
type OneEvent ¶
type OneEvent struct { Type string `json:"type"` // 事件类型,例如 "Normal", "Warning" Component string `json:"component"` // 事件的组件来源,例如 "kubelet" Reason string `json:"reason"` // 事件的原因,例如 "NodeReady" Message string `json:"message"` // 事件的详细消息 FirstTime string `json:"first_time"` // 事件第一次发生的时间,例如 "2024-04-27T10:00:00Z" LastTime string `json:"last_time"` // 事件最近一次发生的时间,例如 "2024-04-27T12:00:00Z" Object string `json:"object"` // 事件关联的对象信息,例如 "kind:Node name:node-1" Count int `json:"count"` // 事件发生的次数 }
OneEvent 单个事件的模型
type PromqlExprCheckReq ¶
type PromqlExprCheckReq struct {
PromqlExpr string `json:"promqlExpr" binding:"required"`
}
type Resource ¶
type Resource struct { Type string `json:"type"` // 资源类型,例如 Pod, Service, Deployment Name string `json:"name"` // 资源名称 Namespace string `json:"namespace"` // 所属命名空间 Status string `json:"status"` // 资源状态,例如 Running, Pending CreationTime time.Time `json:"creation_time"` // 创建时间 }
Resource 命名空间中的资源响应结构体
type ResourceEcs ¶
type ResourceEcs struct { Model ResourceTree // 核心资源属性 OsType string `json:"osType" gorm:"type:varchar(50);comment:操作系统类型,例如 win、linux"` // 操作系统类型 VmType int `json:"vmType" gorm:"default:1;comment:设备类型,1=虚拟设备,2=物理设备"` // 设备类型 InstanceType string `json:"instanceType" gorm:"type:varchar(100);comment:实例类型,例:ecs.g8a.2xlarge"` // 实例类型 Cpu int `json:"cpu" gorm:"comment:虚拟 CPU 核数"` // 虚拟 CPU 核数 Memory int `json:"memory" gorm:"comment:内存大小,单位 GiB"` // 内存大小,单位 GiB Disk int `json:"disk" gorm:"comment:磁盘大小,单位 GiB"` // 磁盘大小,单位 GiB OSName string `json:"osName" gorm:"type:varchar(100);comment:操作系统名称,例:CentOS 7.4 64 位"` // 操作系统名称 ImageId string `json:"imageId" gorm:"type:varchar(100);comment:镜像模板 ID"` // 镜像模板 ID Hostname string `json:"hostname" gorm:"type:varchar(100);comment:主机名"` // 主机名 Password string `json:"password" gorm:"comment:密码"` NetworkInterfaces StringList `json:"networkInterfaces" gorm:"type:varchar(500);comment:弹性网卡 ID 集合"` // 弹性网卡 ID 集合 DiskIds StringList `json:"diskIds" gorm:"type:varchar(500);comment:云盘 ID 集合"` // 云盘 ID 集合 Status string `json:"status" gorm:"type:varchar(50);comment:资源状态,如 运行中、已停止、创建中"` // 资源状态 // 时间相关字段 StartTime string `json:"startTime" gorm:"type:varchar(30);comment:最近启动时间, ISO 8601 标准, UTC+0 时间"` // 最近启动时间 AutoReleaseTime string `json:"autoReleaseTime" gorm:"type:varchar(30);comment:自动释放时间, ISO 8601 标准, UTC+0 时间"` // 自动释放时间 LastInvokedTime string `json:"lastInvokedTime" gorm:"type:varchar(30);comment:最近调用时间, ISO 8601 标准, UTC+0 时间"` // 最近调用时间 // 多对多关系 BindNodes []*TreeNode `json:"bind_nodes" gorm:"many2many:bind_ecs;comment:绑定的树节点列表"` // 绑定的树节点 CreateResourceType int `json:"createResourceType" gorm:"-"` }
ResourceEcs 表示 ECS 资源的结构体, 包含虚拟机的硬件和网络信息
type ResourceElb ¶
type ResourceElb struct { Model ResourceTree // 负载均衡器的核心属性 LoadBalancerType string `json:"loadBalancerType" gorm:"type:varchar(50);comment:负载均衡类型, 例: nlb, alb, clb"` // 负载均衡类型, 如 nlb, alb, clb BandwidthCapacity int `json:"bandwidthCapacity" gorm:"comment:带宽容量上限, 单位 Mb, 例: 50"` // 带宽容量上限, 单位 Mb AddressType string `json:"addressType" gorm:"type:varchar(50);comment:地址类型, 公网或内网"` // 地址类型, 支持公网或内网 DNSName string `json:"dnsName" gorm:"type:varchar(255);comment:DNS 解析地址"` // DNS 解析地址 BandwidthPackageId string `json:"bandwidthPackageId" gorm:"type:varchar(100);comment:绑定的带宽包 ID"` // 绑定的带宽包 ID CrossZoneEnabled bool `json:"crossZoneEnabled" gorm:"comment:是否启用跨可用区"` // 是否启用跨可用区 BindNodes []*TreeNode `json:"bind_nodes" gorm:"many2many:bind_elbs;comment:绑定的树节点列表"` // 绑定的树节点 CreateResourceType int `json:"createResourceType" gorm:"-"` }
ResourceElb 表示负载均衡器资源的结构体
type ResourceRds ¶
type ResourceRds struct { Model ResourceTree // RDS 的核心属性 Engine string `json:"engine" gorm:"type:varchar(50);comment:数据库引擎类型, 例: mysql, mariadb, postgresql"` // 数据库引擎类型 DBInstanceNetType string `json:"dbInstanceNetType" gorm:"type:varchar(50);comment:实例网络类型, 例: Internet(外网), Intranet(内网)"` // 实例网络类型 DBInstanceClass string `json:"dbInstanceClass" gorm:"type:varchar(100);comment:实例规格, 例: rds.mys2.small"` // 实例规格 DBInstanceType string `json:"dbInstanceType" gorm:"type:varchar(50);comment:实例类型, 例: Primary(主实例), Readonly(只读实例)"` // 实例类型 EngineVersion string `json:"engineVersion" gorm:"type:varchar(50);comment:数据库版本, 例: 8.0, 5.7"` // 数据库版本 MasterInstanceId string `json:"masterInstanceId" gorm:"type:varchar(100);comment:主实例 ID"` // 主实例 ID DBInstanceStatus string `json:"dbInstanceStatus" gorm:"type:varchar(50);comment:实例状态"` // 实例状态 ReplicateId string `json:"replicateId" gorm:"type:varchar(100);comment:复制实例 ID"` // 复制实例 ID // 多对多关系 BindNodes []*TreeNode `json:"bind_nodes" gorm:"many2many:bind_rds;comment:绑定的树节点列表"` // 绑定的树节点 CreateResourceType int `json:"createResourceType" gorm:"-"` }
ResourceRds 表示 RDS 资源的结构体
type ResourceRequirements ¶
type ResourceRequirements struct { Requests K8sResourceList `json:"requests,omitempty" gorm:"type:text;serializer:json;comment:资源请求"` // 资源请求 Limits K8sResourceList `json:"limits,omitempty" gorm:"type:text;serializer:json;comment:资源限制"` // 资源限制 }
ResourceRequirements 资源的请求与限制
type ResourceTree ¶
type ResourceTree struct { InstanceName string `json:"instanceName" gorm:"uniqueIndex;type:varchar(100);comment:资源实例名称,支持模糊搜索"` // 资源实例名称,支持模糊搜索 Hash string `json:"hash" gorm:"uniqueIndex;type:varchar(200);comment:用于资源更新的哈希值"` // 增量更新的哈希值 Vendor string `json:"vendor" gorm:"varchar(50);comment:云厂商名称,1=个人,2=阿里云,3=华为云,4=腾讯云,5=AWS"` // 云厂商名称 CreateByOrder bool `json:"createByOrder" gorm:"comment:是否由工单创建,工单创建的资源不会被自动更新删除"` // 是否由工单创建的标识 Image string `json:"image" gorm:"type:varchar(100);comment:镜像名称"` // 镜像名称 VpcId string `json:"vpcId" gorm:"type:varchar(100);comment:专有网络 VPC ID"` // 专有网络 VPC ID ZoneId string `json:"zoneId" gorm:"type:varchar(100);comment:实例所属可用区 ID,如 cn-hangzhou-g"` // 可用区 ID Env string `json:"env" gorm:"type:varchar(50);comment:环境标识,如 dev、stage、prod"` // 环境标识 PayType string `json:"payType" gorm:"type:varchar(50);comment:付费类型,按量付费或包年包月"` // 付费类型 Status string `json:"status" gorm:"type:varchar(50);comment:资源状态,如 运行中、已停止、创建中"` // 资源状态 Description string `json:"description" gorm:"type:text;comment:资源描述,如 CentOS 7.4 操作系统"` // 资源描述 Tags StringList `json:"tags" gorm:"type:varchar(500);comment:资源标签集合,用于分类和筛选"` // 资源标签 SecurityGroupIds StringList `json:"securityGroupIds" gorm:"type:varchar(500);comment:安全组 ID 列表"` // 安全组 ID 列表 PrivateIpAddress string `json:"privateIpAddress" gorm:"type:varchar(500);comment:私有 IP 地址列表"` // 私有 IP 地址列表 PublicIpAddress string `json:"publicIpAddress" gorm:"type:varchar(500);comment:公网 IP 地址列表"` // 公网 IP 地址列表 IpAddr string `json:"ipAddr" gorm:"type:varchar(45);uniqueIndex;comment:单个公网 IP 地址"` // 单个公网 IP 地址 Port int `json:"port" gorm:"comment:端口号;default:22"` Username string `json:"username" gorm:"comment:用户名;default:root"` Password string `json:"password" gorm:"comment:密码"` Key string `json:"key" gorm:"comment:秘钥"` Mode string `json:"mode" gorm:"comment:认证方式;default:password"` CreationTime string `json:"creationTime" gorm:"type:varchar(30);comment:创建时间,ISO 8601 格式"` // 创建时间,ISO 8601 格式 }
ResourceTree 表示 CMDB 中的资源树节点,包含资源的基本信息
type Role ¶
type Role struct { ID int `json:"id" gorm:"primaryKey;column:id;comment:主键ID"` Name string `json:"name" gorm:"column:name;type:varchar(50);not null;unique;comment:角色名称"` Description string `json:"description" gorm:"column:description;type:varchar(255);comment:角色描述"` RoleType int `json:"role_type" gorm:"column:role_type;type:tinyint(1);not null;comment:角色类型(1:系统角色,2:自定义角色)"` IsDefault int `json:"is_default" gorm:"column:is_default;type:tinyint(1);default:0;comment:是否为默认角色(0:否,1:是)"` CreateTime int64 `json:"create_time" gorm:"column:create_time;autoCreateTime;comment:创建时间"` UpdateTime int64 `json:"update_time" gorm:"column:update_time;autoUpdateTime;comment:更新时间"` IsDeleted int `json:"is_deleted" gorm:"column:is_deleted;type:tinyint(1);default:0;comment:是否删除(0:否,1:是)"` Apis []*Api `json:"apis" gorm:"-"` }
type ScheduleK8sNodesRequest ¶
type ScheduleK8sNodesRequest struct { *K8sClusterNodesRequest ScheduleEnable bool `json:"schedule_enable"` }
ScheduleK8sNodesRequest 定义调度节点的请求结构
type SecurityConfig ¶
type SecurityConfig struct { SecurityGroupName string `json:"security_group_name"` // 安全组名称 SecurityGroupDescription string `json:"security_group_description"` // 安全组描述 SecurityGroupVpcID StringList `json:"security_group_vpc_id"` // 关联的 VPC ID }
SecurityConfig 表示安全组的配置
type StringList ¶
type StringList []string
StringList 封装了 []string 类型,用于与数据库中的逗号分隔字符串进行转换
func (*StringList) Scan ¶
func (m *StringList) Scan(val interface{}) error
type Taint ¶
type Taint struct { Key string `json:"key" binding:"required"` // Taint 的键 Value string `json:"value,omitempty"` // Taint 的值 Effect string `json:"effect" binding:"required,oneof=NoSchedule PreferNoSchedule NoExecute"` // Taint 的效果,例如 "NoSchedule", "PreferNoSchedule", "NoExecute" }
Taint 定义 Taint 的模型
type TaintK8sNodesRequest ¶
type TaintK8sNodesRequest struct { *K8sClusterNodesRequest ModType string `json:"mod_type"` // 操作类型,值为 "add" 或 "del" TaintYaml string `json:"taint_yaml,omitempty"` // 可选的 Taint YAML 字符串,用于验证或其他用途 }
TaintK8sNodesRequest 定义为节点添加或删除 Taint 的请求结构
type Task ¶
type Task struct { TaskID string `json:"task_id"` Config TerraformConfig `json:"config"` Status string `json:"status"` // pending, processing, success, failed ErrorMessage string `json:"error_message"` // 可选,用于记录错误信息 CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` Action string `json:"action"` // create, update RetryCount int `json:"retry_count"` // 重试次数 }
type TerraformConfig ¶
type TerraformConfig struct { ID int `json:"id"` // 主键 Region string `json:"region"` // 阿里云的 Region Name string `json:"name"` // 资源名称 Instance json.RawMessage `json:"instance"` // ECS 实例配置,存储为 JSON VPC json.RawMessage `json:"vpc"` // VPC 配置,存储为 JSON Security json.RawMessage `json:"security"` // 安全组配置,存储为 JSON Env string `json:"env"` // 环境标识,如 dev、stage、prod PayType string `json:"payType"` // 付费类型,按量付费或包年包月 Description string `json:"description"` // 资源描述 Tags StringList `json:"tags"` // 资源标签,使用逗号分隔 }
TerraformConfig 集中管理 Terraform 所需的所有配置
type TokenRequest ¶
type TokenRequest struct {
RefreshToken string `json:"refreshToken"`
}
type TreeNode ¶
type TreeNode struct { Model Title string `json:"title" gorm:"type:varchar(50);comment:节点名称"` // 节点名称 Pid int `json:"pId" gorm:"index;comment:父节点 ID"` // 父节点 ID Level int `json:"level" gorm:"comment:节点层级"` // 节点层级, 用于标识树的深度 IsLeaf int `json:"isLeaf" gorm:"comment:是否为叶子节点 0为非叶子节点 1为叶子节点"` // 是否为叶子节点 Desc string `json:"desc" gorm:"type:text;comment:节点描述"` // 节点描述信息 // 关联的负责人信息 OpsAdmins []*User `json:"ops_admins" gorm:"many2many:tree_node_ops_admins;comment:运维负责人列表"` // 运维负责人列表 RdAdmins []*User `json:"rd_admins" gorm:"many2many:tree_node_rd_admins;comment:研发负责人列表"` // 研发负责人列表 RdMembers []*User `json:"rd_members" gorm:"many2many:tree_node_rd_members;comment:研发工程师列表"` // 研发工程师列表 // 绑定的资源信息 BindEcs []*ResourceEcs `json:"bind_ecs" gorm:"many2many:bind_ecs;comment:绑定的 ECS 资源列表"` // 绑定的 ECS 资源列表 BindElb []*ResourceElb `json:"bind_elb" gorm:"many2many:bind_elb;comment:绑定的 ELB 资源列表"` // 绑定的 ELB 资源列表 BindRds []*ResourceRds `json:"bind_rds" gorm:"many2many:bind_rds;comment:绑定的 RDS 资源列表"` // 绑定的 RDS 资源列表 // 前端展示信息 Key string `json:"key" gorm:"-"` // 节点唯一标识,前端使用 Label string `json:"label" gorm:"-"` // 节点显示名称,前端使用 Value int `json:"value" gorm:"-"` // 节点值,前端使用 OpsAdminUsers StringList `json:"ops_admin_users" gorm:"-"` // 运维负责人姓名列表,前端使用 RdAdminUsers StringList `json:"rd_admin_users" gorm:"-"` // 研发负责人姓名列表,前端使用 RdMemberUsers StringList `json:"rd_member_users" gorm:"-"` // 研发工程师姓名列表,前端使用 Children []*TreeNode `json:"children" gorm:"-"` // 子节点列表,前端使用 // 节点统计信息 EcsNum int `json:"ecsNum" gorm:"-"` // 绑定的 ECS 数量 ElbNum int `json:"elbNum" gorm:"-"` // 绑定的 ELB 数量 RdsNum int `json:"rdsNum" gorm:"-"` // 绑定的 RDS 数量 NodeNum int `json:"nodeNum" gorm:"-"` // 子节点数量 LeafNodeNum int `json:"leafNodeNum" gorm:"-"` // 叶子节点数量 EcsCpuTotal int `json:"ecsCpuTotal" gorm:"-"` // 绑定的 ECS 总 CPU 核数 ElbBandWithTotal int `json:"elbBandWithTotal" gorm:"-"` // 绑定的 ELB 带宽上限 EcsMemoryTotal int `json:"ecsMemoryTotal" gorm:"-"` // 绑定的 ECS 总内存 EcsDiskTotal int `json:"ecsDiskTotal" gorm:"-"` // 绑定的 ECS 总磁盘空间 // 分类统计数据 GroupByVendor []*ChartItem `json:"groupByVendor" gorm:"-"` // 按厂商分类统计 GroupByZoneId []*ChartItem `json:"groupByZoneId" gorm:"-"` // 按可用区分类统计 GroupByOSName map[string]int `json:"-" gorm:"-"` // 按操作系统分类映射 GroupByVendorElb []*ChartItem `json:"groupByVendorElb" gorm:"-"` // 按厂商分类统计 ELB GroupByVendorRds []*ChartItem `json:"groupByVendorRds" gorm:"-"` // 按厂商分类统计 RDS // 操作权限 CanAdminNode bool `json:"canAdminNode" gorm:"-"` // 是否有权限操作此节点 NodePath string `json:"nodePath" gorm:"-"` // 节点路径, 格式如: a.b.c.d }
TreeNode 表示服务树的节点, 包含节点的层级关系和相关资源绑定
type UpdateApiRequest ¶
type UpdateApiRequest struct { ID int `json:"id" binding:"required,gt=0"` // API ID Name string `json:"name" binding:"required"` // API名称 Path string `json:"path" binding:"required"` // API路径 Method int `json:"method" binding:"required"` // 请求方法 Description string `json:"description"` // API描述 Version string `json:"version"` // API版本 Category int `json:"category"` // API分类 IsPublic int `json:"is_public" binding:"oneof=0 1"` // 是否公开 }
type UpdateMenuRequest ¶
type UpdateMenuRequest struct { Id int `json:"id" binding:"required,gt=0"` // 菜单ID Name string `json:"name" binding:"required"` // 菜单名称 Path string `json:"path" binding:"required"` // 菜单路径 ParentId int `json:"parent_id" binding:"gte=0"` // 父菜单ID Component string `json:"component"` // 组件 Icon string `json:"icon"` // 图标 SortOrder int `json:"sort_order" binding:"gte=0"` // 排序 RouteName string `json:"route_name"` // 路由名称 Hidden int `json:"hidden" binding:"oneof=0 1"` // 是否隐藏 Redirect string `json:"redirect"` // 重定向路径 Meta MetaField `json:"meta"` // 元数据 }
type UpdateNamespaceRequest ¶
type UpdateNamespaceRequest struct { ClusterId int `json:"cluster_id" binding:"required"` Name string `json:"namespace" binding:"required"` Labels []string `json:"labels,omitempty"` // 命名空间标签 Annotations []string `json:"annotations,omitempty"` // 命名空间注解 }
UpdateNamespaceRequest 更新命名空间请求结构体
type UpdateProfileRequest ¶
type UpdateProfileRequest struct { UserId int `json:"user_id"` RealName string `json:"real_name"` Desc string `json:"desc"` Mobile string `json:"mobile"` FeiShuUserId string `json:"fei_shu_user_id"` AccountType int `json:"account_type"` HomePath string `json:"home_path"` Enable int `json:"enable"` }
type UpdateRoleRequest ¶
type UpdateRoleRequest struct { Id int `json:"id" binding:"required,gt=0"` // 角色ID Name string `json:"name" binding:"required"` // 角色名称 Description string `json:"description"` // 角色描述 RoleType int `json:"role_type" binding:"required"` // 角色类型 IsDefault int `json:"is_default" binding:"oneof=0 1"` // 是否默认角色 ApiIds []int `json:"api_ids"` // API ID列表 }
type UpdateUserMenuRequest ¶
type UpdateUserRoleRequest ¶
type User ¶
type User struct { Model // 软删除字段,自动管理 Username string `json:"username" gorm:"type:varchar(100);not null;comment:用户登录名"` // 用户登录名,唯一且非空 Password string `json:"password" gorm:"type:varchar(255);not null;comment:用户登录密码"` // 用户登录密码,非空 RealName string `json:"realName" gorm:"type:varchar(100);comment:用户真实姓名"` // 用户真实姓名 Desc string `json:"desc" gorm:"type:text;comment:用户描述"` // 用户描述,支持较长文本 Mobile string `json:"mobile" gorm:"type:varchar(20);comment:手机号"` // 手机号,唯一索引 FeiShuUserId string `json:"feiShuUserId" gorm:"type:varchar(50);comment:飞书用户ID"` // 飞书用户ID AccountType int `json:"accountType" gorm:"default:1;comment:账号类型 1普通用户 2服务账号" binding:"omitempty,oneof=1 2"` // 账号类型,默认为普通用户 HomePath string `json:"homePath" gorm:"type:varchar(255);comment:登录后的默认首页"` // 登录后的默认首页 Enable int `json:"enable" gorm:"default:1;comment:用户状态 1正常 2冻结" binding:"omitempty,oneof=1 2"` // 用户状态,默认为正常 Roles []*Role `json:"roles" gorm:"many2many:user_roles;comment:关联角色"` // 多对多关联角色 Menus []*Menu `json:"menus" gorm:"many2many:user_menus;comment:关联菜单"` // 多对多关联菜单 Apis []*Api `json:"apis" gorm:"many2many:user_apis;comment:关联接口"` // 多对多关联接口 }
type VPCConfig ¶
type VPCConfig struct { VpcName string `json:"vpc_name"` // VPC 名称 CidrBlock string `json:"cidr_block"` // VPC 的网段 VSwitchCidr string `json:"vswitch_cidr"` // VSwitch 的网段 ZoneID string `json:"zone_id"` // 可用区 ID }
VPCConfig 表示 VPC 和相关资源的配置