// Code generated by goctl. DO NOT EDIT.
package handler

import (
	"net/http"

	adapters "gitlink.org.cn/JointCloud/pcm-coordinator/internal/handler/adapters"
	ai "gitlink.org.cn/JointCloud/pcm-coordinator/internal/handler/ai"
	cloud "gitlink.org.cn/JointCloud/pcm-coordinator/internal/handler/cloud"
	core "gitlink.org.cn/JointCloud/pcm-coordinator/internal/handler/core"
	dictionary "gitlink.org.cn/JointCloud/pcm-coordinator/internal/handler/dictionary"
	hpc "gitlink.org.cn/JointCloud/pcm-coordinator/internal/handler/hpc"
	inference "gitlink.org.cn/JointCloud/pcm-coordinator/internal/handler/inference"
	monitoring "gitlink.org.cn/JointCloud/pcm-coordinator/internal/handler/monitoring"
	schedule "gitlink.org.cn/JointCloud/pcm-coordinator/internal/handler/schedule"
	storage "gitlink.org.cn/JointCloud/pcm-coordinator/internal/handler/storage"
	storelink "gitlink.org.cn/JointCloud/pcm-coordinator/internal/handler/storelink"
	vm "gitlink.org.cn/JointCloud/pcm-coordinator/internal/handler/vm"
	"gitlink.org.cn/JointCloud/pcm-coordinator/internal/svc"

	"github.com/zeromicro/go-zero/rest"
)

func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
	server.AddRoutes(
		[]rest.Route{
			{
				Method:  http.MethodPost,
				Path:    "/adapter/cluster/create",
				Handler: adapters.CreateClusterHandler(serverCtx),
			},
			{
				Method:  http.MethodDelete,
				Path:    "/adapter/cluster/delete",
				Handler: adapters.DeleteClusterHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/adapter/cluster/get",
				Handler: adapters.GetClusterHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/adapter/cluster/list",
				Handler: adapters.ClusterListHandler(serverCtx),
			},
			{
				Method:  http.MethodPut,
				Path:    "/adapter/cluster/update",
				Handler: adapters.UpdateClusterHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/adapter/clusterSum",
				Handler: adapters.GetClusterSumHandler(serverCtx),
			},
			{
				Method:  http.MethodPost,
				Path:    "/adapter/create",
				Handler: adapters.CreateAdapterHandler(serverCtx),
			},
			{
				Method:  http.MethodDelete,
				Path:    "/adapter/delete",
				Handler: adapters.DeleteAdapterHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/adapter/get",
				Handler: adapters.GetAdapterHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/adapter/getAdapterInfo",
				Handler: adapters.GetAdapterInfoHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/adapter/list",
				Handler: adapters.AdaptersListHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/adapter/relation",
				Handler: adapters.GetAdapterRelationHandler(serverCtx),
			},
			{
				Method:  http.MethodPut,
				Path:    "/adapter/update",
				Handler: adapters.UpdateAdapterHandler(serverCtx),
			},
		},
		rest.WithPrefix("/pcm/v1"),
	)

	server.AddRoutes(
		[]rest.Route{
			{
				// 创建算法
				Method:  http.MethodPost,
				Path:    "/ai/CreateAlgorithm/:projectId",
				Handler: ai.CreateAlgorithmHandler(serverCtx),
			},
			{
				// 创建导出任务
				Method:  http.MethodPost,
				Path:    "/ai/CreateExportTask/:projectId/:datasetId",
				Handler: ai.CreateExportTaskHandler(serverCtx),
			},
			{
				// 创建处理任务
				Method:  http.MethodPost,
				Path:    "/ai/CreateProcessorTask",
				Handler: ai.CreateProcessorTaskHandler(serverCtx),
			},
			{
				// 创建服务
				Method:  http.MethodPost,
				Path:    "/ai/CreateService/:projectId",
				Handler: ai.CreateServiceHandler(serverCtx),
			},
			{
				// 创建导入任务
				Method:  http.MethodPost,
				Path:    "/ai/CreateTask/:projectId/:datasetId",
				Handler: ai.CreateTaskHandler(serverCtx),
			},
			{
				// 创建训练作业
				Method:  http.MethodPost,
				Path:    "/ai/CreateTrainingJob/:projectId",
				Handler: ai.CreateTrainingJobHandler(serverCtx),
			},
			{
				// 创建虚拟化任务
				Method:  http.MethodPost,
				Path:    "/ai/CreateVisualizationJob",
				Handler: ai.CreateVisualizationJobHandler(serverCtx),
			},
			{
				// 删除算法
				Method:  http.MethodDelete,
				Path:    "/ai/DeleteAlgorithm/:projectId/:algorithmId",
				Handler: ai.DeleteAlgorithmHandler(serverCtx),
			},
			{
				// 删除服务
				Method:  http.MethodDelete,
				Path:    "/ai/DeleteService/:projectId/:serviceId",
				Handler: ai.DeleteServiceHandler(serverCtx),
			},
			{
				// 删除训练作业
				Method:  http.MethodDelete,
				Path:    "/ai/DeleteTrainingJob/:projectId/:trainingJobId",
				Handler: ai.DeleteTrainingJobHandler(serverCtx),
			},
			{
				// 获取导出任务数据集状态
				Method:  http.MethodGet,
				Path:    "/ai/GetExportTaskStatusOfDataset/:projectId/:resourceId/:taskId",
				Handler: ai.GetExportTaskStatusOfDatasetHandler(serverCtx),
			},
			{
				// 获取导出任务数据集
				Method:  http.MethodGet,
				Path:    "/ai/GetExportTasksOfDataset/:projectId/:datasetId",
				Handler: ai.GetExportTasksOfDatasetHandler(serverCtx),
			},
			{
				// 查询训练作业列表
				Method:  http.MethodGet,
				Path:    "/ai/GetListTrainingJobs/:projectId",
				Handler: ai.GetListTrainingJobsHandler(serverCtx),
			},
			{
				// 查询创建算法列表
				Method:  http.MethodGet,
				Path:    "/ai/ListAlgorithms/:projectId",
				Handler: ai.ListAlgorithmsHandler(serverCtx),
			},
			{
				// 查询专属资源池列表
				Method:  http.MethodGet,
				Path:    "/ai/ListClusters",
				Handler: ai.ListClustersHandler(serverCtx),
			},
			{
				// 查询数据集导入任务列表
				Method:  http.MethodGet,
				Path:    "/ai/ListImport/:projectId/:datasetId",
				Handler: ai.ListImportHandler(serverCtx),
			},
			{
				// 展示服务
				Method:  http.MethodGet,
				Path:    "/ai/ListServices/:projectId",
				Handler: ai.ListServicesHandler(serverCtx),
			},
			{
				// 展示算法详情
				Method:  http.MethodGet,
				Path:    "/ai/ShowAlgorithmByUuid/:projectId/:algorithmId",
				Handler: ai.ShowAlgorithmByUuidHandler(serverCtx),
			},
			{
				// 展示服务详情
				Method:  http.MethodGet,
				Path:    "/ai/ShowService/:projectId/:serviceId",
				Handler: ai.ShowServiceHandler(serverCtx),
			},
			{
				// 文本识别
				Method:  http.MethodPost,
				Path:    "/ai/chat",
				Handler: ai.ChatHandler(serverCtx),
			},
			{
				// 创建数据集
				Method:  http.MethodPost,
				Path:    "/ai/createDataSet/:projectId",
				Handler: ai.CreateDataSetHandler(serverCtx),
			},
			{
				// 创建notebook
				Method:  http.MethodPost,
				Path:    "/ai/createNotebook",
				Handler: ai.CreateNotebookHandler(serverCtx),
			},
			{
				// 删除数据集
				Method:  http.MethodDelete,
				Path:    "/ai/deleteDataSet/:projectId/:datasetId",
				Handler: ai.DeleteDataSetHandler(serverCtx),
			},
			{
				// 智算中心列表
				Method:  http.MethodGet,
				Path:    "/ai/getCenterList",
				Handler: ai.GetCenterListHandler(serverCtx),
			},
			{
				// 智算中心概览
				Method:  http.MethodGet,
				Path:    "/ai/getCenterOverview",
				Handler: ai.GetCenterOverviewHandler(serverCtx),
			},
			{
				// 智算中心排队状况
				Method:  http.MethodGet,
				Path:    "/ai/getCenterQueueing",
				Handler: ai.GetCenterQueueingHandler(serverCtx),
			},
			{
				// 智算中心任务列表
				Method:  http.MethodGet,
				Path:    "/ai/getCenterTaskList",
				Handler: ai.GetCenterTaskListHandler(serverCtx),
			},
			{
				// 查询notebook存储
				Method:  http.MethodGet,
				Path:    "/ai/getNotebookStorage",
				Handler: ai.GetNotebookStorageHandler(serverCtx),
			},
			{
				// 获取虚拟化任务
				Method:  http.MethodGet,
				Path:    "/ai/getVisualizationJob",
				Handler: ai.GetVisualizationJobHandler(serverCtx),
			},
			{
				// 查询数据集列表
				Method:  http.MethodGet,
				Path:    "/ai/listDataSet/:projectId",
				Handler: ai.ListDataSetHandler(serverCtx),
			},
			{
				// 查询notebook列表
				Method:  http.MethodGet,
				Path:    "/ai/listNotebook",
				Handler: ai.ListNotebookHandler(serverCtx),
			},
			{
				// 挂载notebook存储
				Method:  http.MethodPost,
				Path:    "/ai/mountNotebookStorage",
				Handler: ai.MountNotebookStorageHandler(serverCtx),
			},
			{
				// 启动notebook
				Method:  http.MethodPost,
				Path:    "/ai/startNotebook",
				Handler: ai.StartNotebookHandler(serverCtx),
			},
			{
				// 停止notebook
				Method:  http.MethodPost,
				Path:    "/ai/stopNotebook",
				Handler: ai.StopNotebookHandler(serverCtx),
			},
			{
				// 训练任务统计
				Method:  http.MethodGet,
				Path:    "/ai/trainingTaskStat",
				Handler: ai.TrainingTaskStatHandler(serverCtx),
			},
		},
		rest.WithPrefix("/pcm/v1"),
	)

	server.AddRoutes(
		[]rest.Route{
			{
				// yaml删除
				Method:  http.MethodGet,
				Path:    "/cloud/DeleteYaml",
				Handler: cloud.DeleteYamlHandler(serverCtx),
			},
			{
				// 控制器监控
				Method:  http.MethodGet,
				Path:    "/cloud/controller/Metrics",
				Handler: cloud.ControllerMetricsHandler(serverCtx),
			},
			{
				// 数算集群删除
				Method:  http.MethodPost,
				Path:    "/cloud/deleteCluster",
				Handler: cloud.DeleteClusterHandler(serverCtx),
			},
			{
				Method:  http.MethodPost,
				Path:    "/cloud/pod/logs",
				Handler: cloud.PodLogsHandler(serverCtx),
			},
			{
				// 数算集群注册
				Method:  http.MethodPost,
				Path:    "/cloud/registerCluster",
				Handler: cloud.RegisterClusterHandler(serverCtx),
			},
			{
				// Create cloud computing common tasks
				Method:  http.MethodPost,
				Path:    "/cloud/task/create",
				Handler: cloud.CommitGeneralTaskHandler(serverCtx),
			},
			{
				// Obtain cluster list information according to adapterId
				Method:  http.MethodGet,
				Path:    "/core/clusterList",
				Handler: cloud.GetClusterListHandler(serverCtx),
			},
			{
				// 云算任务列表
				Method:  http.MethodGet,
				Path:    "/task/list",
				Handler: cloud.CloudListHandler(serverCtx),
			},
		},
		rest.WithPrefix("/pcm/v1"),
	)

	server.AddRoutes(
		[]rest.Route{
			{
				// 获取节点资产
				Method:  http.MethodGet,
				Path:    "/core/assets",
				Handler: core.NodeAssetsHandler(serverCtx),
			},
			{
				// Center Resources top3
				Method:  http.MethodGet,
				Path:    "/core/centerResources",
				Handler: core.CenterResourcesHandler(serverCtx),
			},
			{
				// 提交任务
				Method:  http.MethodPost,
				Path:    "/core/commitTask",
				Handler: core.CommitTaskHandler(serverCtx),
			},
			{
				// 提交虚拟机任务
				Method:  http.MethodPost,
				Path:    "/core/commitVmTask",
				Handler: core.CommitVmTaskHandler(serverCtx),
			},
			{
				// 删除任务
				Method:  http.MethodDelete,
				Path:    "/core/deleteTask/:id",
				Handler: core.DeleteTaskHandler(serverCtx),
			},
			{
				// 根据集群id获取集群信息
				Method:  http.MethodGet,
				Path:    "/core/getClusterById",
				Handler: core.GetClusterByIdHandler(serverCtx),
			},
			{
				// 获取算力统计信息
				Method:  http.MethodGet,
				Path:    "/core/getComputilityStatistics",
				Handler: core.GetComputilityStatisticsHandler(serverCtx),
			},
			{
				// 查询算力
				Method:  http.MethodGet,
				Path:    "/core/getComputingPower",
				Handler: core.GetComputingPowerHandler(serverCtx),
			},
			{
				// screen
				Method:  http.MethodGet,
				Path:    "/core/getDomainResource",
				Handler: core.GetDomainResourceHandler(serverCtx),
			},
			{
				// 查询通用信息
				Method:  http.MethodGet,
				Path:    "/core/getGeneralInfo",
				Handler: core.GetGeneralInfoHandler(serverCtx),
			},
			{
				// Get Public Flavor
				Method:  http.MethodGet,
				Path:    "/core/getPublicFlavor",
				Handler: core.GetPublicFlavorHandler(serverCtx),
			},
			{
				// Get Public Image
				Method:  http.MethodGet,
				Path:    "/core/getPublicImage",
				Handler: core.GetPublicImageHandler(serverCtx),
			},
			{
				// Get Public Network
				Method:  http.MethodGet,
				Path:    "/core/getPublicNetwork",
				Handler: core.GetPublicNetworkHandler(serverCtx),
			},
			{
				// 获取region
				Method:  http.MethodGet,
				Path:    "/core/getRegion",
				Handler: core.GetRegionHandler(serverCtx),
			},
			{
				// 查询控制面板配置信息
				Method:  http.MethodGet,
				Path:    "/core/getResourcePanelConfigHandler",
				Handler: core.GetResourcePanelConfigHandler(serverCtx),
			},
			{
				// screen
				Method:  http.MethodGet,
				Path:    "/core/getScreenChart",
				Handler: core.GetScreenChartHandler(serverCtx),
			},
			{
				// screen
				Method:  http.MethodGet,
				Path:    "/core/getScreenInfo",
				Handler: core.GetScreenInfoHandler(serverCtx),
			},
			{
				// Home Page Overview
				Method:  http.MethodGet,
				Path:    "/core/homeOverview",
				Handler: core.HomeOverviewHandler(serverCtx),
			},
			{
				// 任务概览
				Method:  http.MethodGet,
				Path:    "/core/jobTotal",
				Handler: core.JobTotalHandler(serverCtx),
			},
			{
				// 数据中心概览
				Method:  http.MethodGet,
				Path:    "/core/listCenter",
				Handler: core.ListCenterHandler(serverCtx),
			},
			{
				// 查询集群列表
				Method:  http.MethodGet,
				Path:    "/core/listCluster/:centerId",
				Handler: core.ListClusterHandler(serverCtx),
			},
			{
				// list notice
				Method:  http.MethodGet,
				Path:    "/core/listNotice",
				Handler: core.ListNoticeHandler(serverCtx),
			},
			{
				// 获取region列表
				Method:  http.MethodGet,
				Path:    "/core/listRegion",
				Handler: core.ListRegionHandler(serverCtx),
			},
			{
				// metrics
				Method:  http.MethodGet,
				Path:    "/core/metrics",
				Handler: core.MetricsHandler(serverCtx),
			},
			{
				// 查询P端服务列表
				Method:  http.MethodGet,
				Path:    "/core/participantList",
				Handler: core.ParticipantListHandler(serverCtx),
			},
			{
				// provide for adapter to pull task info from core
				Method:  http.MethodGet,
				Path:    "/core/pullTaskInfo",
				Handler: core.PullTaskInfoHandler(serverCtx),
			},
			{
				// provide for adapter to push notice info to core
				Method:  http.MethodPost,
				Path:    "/core/pushNotice",
				Handler: core.PushNoticeHandler(serverCtx),
			},
			{
				// provide for adapter to push resource info to core
				Method:  http.MethodPost,
				Path:    "/core/pushResourceInfo",
				Handler: core.PushResourceInfoHandler(serverCtx),
			},
			{
				// provide for adapter to push task info to core
				Method:  http.MethodPost,
				Path:    "/core/pushTaskInfo",
				Handler: core.PushTaskInfoHandler(serverCtx),
			},
			{
				// 设置控制面板配置信息
				Method:  http.MethodPut,
				Path:    "/core/resourcePanelConfigHandler",
				Handler: core.PutResourcePanelConfigHandler(serverCtx),
			},
			{
				// yaml提交任务
				Method:  http.MethodPost,
				Path:    "/core/scheduleTaskByYaml",
				Handler: core.ScheduleTaskByYamlHandler(serverCtx),
			},
			{
				// Synchronize Cluster Load Information
				Method:  http.MethodPost,
				Path:    "/core/syncClusterLoad",
				Handler: core.SyncClusterLoadHandler(serverCtx),
			},
			{
				// Statistical task status
				Method:  http.MethodGet,
				Path:    "/core/task/countTaskStatus",
				Handler: core.CountTaskStatusHandler(serverCtx),
			},
			{
				// task details
				Method:  http.MethodGet,
				Path:    "/core/task/details",
				Handler: core.TaskDetailsHandler(serverCtx),
			},
			{
				// paging queries the task list
				Method:  http.MethodGet,
				Path:    "/core/task/list",
				Handler: core.PageListTaskHandler(serverCtx),
			},
			{
				// 查询任务列表
				Method:  http.MethodGet,
				Path:    "/core/taskList",
				Handler: core.TaskListHandler(serverCtx),
			},
		},
		rest.WithPrefix("/pcm/v1"),
	)

	server.AddRoutes(
		[]rest.Route{
			{
				Method:  http.MethodPost,
				Path:    "/dict",
				Handler: dictionary.AddDictHandler(serverCtx),
			},
			{
				Method:  http.MethodPut,
				Path:    "/dict",
				Handler: dictionary.EditDictHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/dict/:id",
				Handler: dictionary.GetDictHandler(serverCtx),
			},
			{
				Method:  http.MethodDelete,
				Path:    "/dict/:id",
				Handler: dictionary.DeleteDictHandler(serverCtx),
			},
			{
				Method:  http.MethodPost,
				Path:    "/dictItem",
				Handler: dictionary.AddDictItemHandler(serverCtx),
			},
			{
				Method:  http.MethodPut,
				Path:    "/dictItem",
				Handler: dictionary.EditDictItemHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/dictItem/:id",
				Handler: dictionary.GetDictItemHandler(serverCtx),
			},
			{
				Method:  http.MethodDelete,
				Path:    "/dictItem/:id",
				Handler: dictionary.DeleteDictItemHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/dictItem/code/:dictCode",
				Handler: dictionary.ListDictItemByCodeHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/dictItems",
				Handler: dictionary.ListDictItemHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/dicts",
				Handler: dictionary.ListDictHandler(serverCtx),
			},
		},
		rest.WithPrefix("/pcm/v1"),
	)

	server.AddRoutes(
		[]rest.Route{
			{
				// 超算适配器列表
				Method:  http.MethodGet,
				Path:    "/hpc/adapterSummary",
				Handler: hpc.AdapterSummaryHandler(serverCtx),
			},
			{
				// 删除超算任务
				Method:  http.MethodDelete,
				Path:    "/hpc/cancelJob",
				Handler: hpc.CancelJobHandler(serverCtx),
			},
			{
				// 提交超算任务
				Method:  http.MethodPost,
				Path:    "/hpc/commitHpcTask",
				Handler: hpc.CommitHpcTaskHandler(serverCtx),
			},
			{
				// 超算查询任务列表
				Method:  http.MethodGet,
				Path:    "/hpc/job",
				Handler: hpc.JobHandler(serverCtx),
			},
			{
				// 超算总览
				Method:  http.MethodGet,
				Path:    "/hpc/overview",
				Handler: hpc.OverViewHandler(serverCtx),
			},
			{
				// 超算查询资产列表
				Method:  http.MethodGet,
				Path:    "/hpc/queueAssets",
				Handler: hpc.QueueAssetsHandler(serverCtx),
			},
			{
				// 超算资源总览
				Method:  http.MethodGet,
				Path:    "/hpc/resource",
				Handler: hpc.ResourceHandler(serverCtx),
			},
		},
		rest.WithPrefix("/pcm/v1"),
	)

	server.AddRoutes(
		[]rest.Route{
			{
				Method:  http.MethodPost,
				Path:    "/inference/createDeployTask",
				Handler: inference.CreateDeployTaskHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/inference/deployInstanceList",
				Handler: inference.DeployInstanceListHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/inference/deployInstanceStat",
				Handler: inference.DeployInstanceStatHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/inference/getAdaptersByModel",
				Handler: inference.GetAdaptersByModelHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/inference/getDeployTasksByType",
				Handler: inference.GetDeployTasksByTypeHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/inference/getRunningInstanceById",
				Handler: inference.GetRunningInstanceByIdHandler(serverCtx),
			},
			{
				Method:  http.MethodPost,
				Path:    "/inference/images",
				Handler: inference.ImageInferenceHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/inference/instanceCenter",
				Handler: inference.InstanceCenterHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/inference/modelNames",
				Handler: inference.ModelNamesByTypeHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/inference/modelTypes",
				Handler: inference.ModelTypesHandler(serverCtx),
			},
			{
				Method:  http.MethodPost,
				Path:    "/inference/startAll",
				Handler: inference.StartAllByDeployTaskIdHandler(serverCtx),
			},
			{
				Method:  http.MethodPost,
				Path:    "/inference/startDeployInstance",
				Handler: inference.StartDeployInstanceListHandler(serverCtx),
			},
			{
				Method:  http.MethodPost,
				Path:    "/inference/stopAll",
				Handler: inference.StopAllByDeployTaskIdHandler(serverCtx),
			},
			{
				Method:  http.MethodPost,
				Path:    "/inference/stopDeployInstance",
				Handler: inference.StopDeployInstanceHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/inference/taskDetail",
				Handler: inference.InferenceTaskDetailHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/inference/taskStat",
				Handler: inference.InferenceTaskStatHandler(serverCtx),
			},
			{
				Method:  http.MethodPost,
				Path:    "/inference/text",
				Handler: inference.TextToTextInferenceHandler(serverCtx),
			},
		},
		rest.WithPrefix("/pcm/v1"),
	)

	server.AddRoutes(
		[]rest.Route{
			{
				Method:  http.MethodGet,
				Path:    "/monitoring/adapter/info",
				Handler: monitoring.AdapterInfoHandler(serverCtx),
			},
			{
				// alert list
				Method:  http.MethodGet,
				Path:    "/monitoring/alert/list",
				Handler: monitoring.AlertListHandler(serverCtx),
			},
			{
				Method:  http.MethodPost,
				Path:    "/monitoring/alert/rule",
				Handler: monitoring.CreateAlertRuleHandler(serverCtx),
			},
			{
				// alert rules
				Method:  http.MethodGet,
				Path:    "/monitoring/alert/rule",
				Handler: monitoring.AlertRulesHandler(serverCtx),
			},
			{
				Method:  http.MethodDelete,
				Path:    "/monitoring/alert/rule",
				Handler: monitoring.DeleteAlertRuleHandler(serverCtx),
			},
			{
				// cluster resource load
				Method:  http.MethodGet,
				Path:    "/monitoring/cluster/load",
				Handler: monitoring.ClustersLoadHandler(serverCtx),
			},
			{
				// node resource load
				Method:  http.MethodGet,
				Path:    "/monitoring/node/top",
				Handler: monitoring.NodesLoadTopHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/monitoring/schedule/situation",
				Handler: monitoring.ScheduleSituationHandler(serverCtx),
			},
			{
				// Synchronize Cluster alert Information
				Method:  http.MethodPost,
				Path:    "/monitoring/syncClusterAlert",
				Handler: monitoring.SyncClusterAlertHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/monitoring/task/num",
				Handler: monitoring.TaskNumHandler(serverCtx),
			},
		},
		rest.WithPrefix("/pcm/v1"),
	)

	server.AddRoutes(
		[]rest.Route{
			{
				Method:  http.MethodGet,
				Path:    "/schedule/ai/getAlgorithms/:adapterId/:resourceType/:taskType/:dataset",
				Handler: schedule.ScheduleGetAlgorithmsHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/schedule/ai/getDatasets/:adapterId",
				Handler: schedule.ScheduleGetDatasetsHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/schedule/ai/getJobLog/:adapterId/:clusterId/:taskId/:instanceNum",
				Handler: schedule.ScheduleGetAiJobLogLogHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/schedule/ai/getResourceTypes",
				Handler: schedule.ScheduleGetAiResourceTypesHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/schedule/ai/getStrategies",
				Handler: schedule.ScheduleGetStrategyHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/schedule/ai/getTaskTypes",
				Handler: schedule.ScheduleGetAiTaskTypesHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/schedule/downloadAlgorithmCode",
				Handler: schedule.DownloadAlgothmCodeHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/schedule/getClusterBalanceById/:adapterId/:clusterId",
				Handler: schedule.GetClusterBalanceByIdHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/schedule/getComputeCardsByCluster/:adapterId/:clusterId",
				Handler: schedule.GetComputeCardsByClusterHandler(serverCtx),
			},
			{
				Method:  http.MethodPost,
				Path:    "/schedule/getOverview",
				Handler: schedule.ScheduleGetOverviewHandler(serverCtx),
			},
			{
				Method:  http.MethodPost,
				Path:    "/schedule/submit",
				Handler: schedule.ScheduleSubmitHandler(serverCtx),
			},
			{
				Method:  http.MethodPost,
				Path:    "/schedule/uploadAlgorithmCode",
				Handler: schedule.UploadAlgothmCodeHandler(serverCtx),
			},
		},
		rest.WithPrefix("/pcm/v1"),
	)

	server.AddRoutes(
		[]rest.Route{
			{
				// 日常算力查询
				Method:  http.MethodGet,
				Path:    "/storage/dailyPowerScreen",
				Handler: storage.DailyPowerScreenHandler(serverCtx),
			},
			{
				// 算力中心算力情况
				Method:  http.MethodGet,
				Path:    "/storage/perCenterComputerPowers",
				Handler: storage.PerCenterComputerPowersHandler(serverCtx),
			},
		},
		rest.WithPrefix("/pcm/v1"),
	)

	server.AddRoutes(
		[]rest.Route{
			{
				Method:  http.MethodDelete,
				Path:    "/storelink/deleteImage",
				Handler: storelink.DeleteLinkImageHandler(serverCtx),
			},
			{
				Method:  http.MethodDelete,
				Path:    "/storelink/deleteTask",
				Handler: storelink.DeleteLinkTaskHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/storelink/getImageList",
				Handler: storelink.GetLinkImageListHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/storelink/getParticipants",
				Handler: storelink.GetParticipantsHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/storelink/getResourceSpecs",
				Handler: storelink.GetAISpecsHandler(serverCtx),
			},
			{
				Method:  http.MethodGet,
				Path:    "/storelink/getTask",
				Handler: storelink.GetLinkTaskHandler(serverCtx),
			},
			{
				Method:  http.MethodPost,
				Path:    "/storelink/submitTask",
				Handler: storelink.SubmitLinkTaskHandler(serverCtx),
			},
			{
				Method:  http.MethodPost,
				Path:    "/storelink/uploadImage",
				Handler: storelink.UploadLinkImageHandler(serverCtx),
			},
		},
		rest.WithPrefix("/pcm/v1"),
	)

	server.AddRoutes(
		[]rest.Route{
			{
				// 将安全组添加到服务器
				Method:  http.MethodPost,
				Path:    "/vm/addSecurityGroupToServer",
				Handler: vm.AddSecurityGroupToServerHandler(serverCtx),
			},
			{
				// 批量创建网络
				Method:  http.MethodPost,
				Path:    "/vm/bulkCreateNetworks",
				Handler: vm.BulkCreateNetworksHandler(serverCtx),
			},
			{
				// 设置密码
				Method:  http.MethodPost,
				Path:    "/vm/changeAdministrativePassword",
				Handler: vm.ChangeAdministrativePasswordHandler(serverCtx),
			},
			{
				// 创建防火墙
				Method:  http.MethodPost,
				Path:    "/vm/createFirewallGroup",
				Handler: vm.CreateFirewallGroupHandler(serverCtx),
			},
			{
				// 创建防火墙策略
				Method:  http.MethodPost,
				Path:    "/vm/createFirewallPolicy",
				Handler: vm.CreateFirewallPolicyHandler(serverCtx),
			},
			{
				// 创建防火墙策略
				Method:  http.MethodPost,
				Path:    "/vm/createFirewallRule",
				Handler: vm.CreateFirewallRuleHandler(serverCtx),
			},
			{
				// 创建规格
				Method:  http.MethodPost,
				Path:    "/vm/createFlavor",
				Handler: vm.CreateFlavorHandler(serverCtx),
			},
			{
				// 创建浮动ip
				Method:  http.MethodPost,
				Path:    "/vm/createFloatingIP",
				Handler: vm.CreateFloatingIPHandler(serverCtx),
			},
			{
				// 创建镜像
				Method:  http.MethodPost,
				Path:    "/vm/createImage",
				Handler: vm.CreateImageHandler(serverCtx),
			},
			{
				// 跨域创建虚拟机
				Method:  http.MethodPost,
				Path:    "/vm/createMulServer",
				Handler: vm.CreateMulServerHandler(serverCtx),
			},
			{
				// 创建网络
				Method:  http.MethodPost,
				Path:    "/vm/createNetwork",
				Handler: vm.CreateNetworkHandler(serverCtx),
			},
			{
				// 创建网段
				Method:  http.MethodPost,
				Path:    "/vm/createNetworkSegmentRange",
				Handler: vm.CreateNetworkSegmentRangeHandler(serverCtx),
			},
			{
				// 创建节点
				Method:  http.MethodPost,
				Path:    "/vm/createNode",
				Handler: vm.CreateNodeHandler(serverCtx),
			},
			{
				// 创建端口
				Method:  http.MethodPost,
				Path:    "/vm/createPort",
				Handler: vm.CreatePortHandler(serverCtx),
			},
			{
				// 创建路由
				Method:  http.MethodPost,
				Path:    "/vm/createRouter",
				Handler: vm.CreateRouterHandler(serverCtx),
			},
			{
				// 创建安全组
				Method:  http.MethodPost,
				Path:    "/vm/createSecurityGroup",
				Handler: vm.CreateSecurityGroupHandler(serverCtx),
			},
			{
				// 创建安全组规则
				Method:  http.MethodPost,
				Path:    "/vm/createSecurityGroupRule",
				Handler: vm.CreateSecurityGroupRuleHandler(serverCtx),
			},
			{
				// 创建虚拟机
				Method:  http.MethodPost,
				Path:    "/vm/createServer",
				Handler: vm.CreateServerHandler(serverCtx),
			},
			{
				// 创建子网
				Method:  http.MethodPost,
				Path:    "/vm/createSubnet",
				Handler: vm.CreateSubnetHandler(serverCtx),
			},
			{
				// 创建卷
				Method:  http.MethodPost,
				Path:    "/vm/createVolume",
				Handler: vm.CreateVolumeHandler(serverCtx),
			},
			{
				// 创建卷类型
				Method:  http.MethodPost,
				Path:    "/vm/createVolumeTypes",
				Handler: vm.CreateVolumeTypesHandler(serverCtx),
			},
			{
				// 删除防火墙
				Method:  http.MethodDelete,
				Path:    "/vm/deleteFirewallGroup",
				Handler: vm.DeleteFirewallGroupHandler(serverCtx),
			},
			{
				// 删除防火墙策略
				Method:  http.MethodDelete,
				Path:    "/vm/deleteFirewallPolicy",
				Handler: vm.DeleteFirewallPolicyHandler(serverCtx),
			},
			{
				// 删除防火墙策略
				Method:  http.MethodDelete,
				Path:    "/vm/deleteFirewallRule",
				Handler: vm.DeleteFirewallRuleHandler(serverCtx),
			},
			{
				// 创建规格
				Method:  http.MethodPost,
				Path:    "/vm/deleteFlavor",
				Handler: vm.DeleteFlavorHandler(serverCtx),
			},
			{
				// 删除浮动ip
				Method:  http.MethodDelete,
				Path:    "/vm/deleteFloatingIP",
				Handler: vm.DeleteFloatingIPHandler(serverCtx),
			},
			{
				// 删除镜像
				Method:  http.MethodDelete,
				Path:    "/vm/deleteImage",
				Handler: vm.DeleteImageHandler(serverCtx),
			},
			{
				// 删除网络
				Method:  http.MethodDelete,
				Path:    "/vm/deleteNetwork",
				Handler: vm.DeleteNetworkHandler(serverCtx),
			},
			{
				// 删除网段
				Method:  http.MethodDelete,
				Path:    "/vm/deleteNetworkSegmentRanges",
				Handler: vm.DeleteNetworkSegmentRangesHandler(serverCtx),
			},
			{
				// 删除节点
				Method:  http.MethodDelete,
				Path:    "/vm/deleteNode",
				Handler: vm.DeleteNodeHandler(serverCtx),
			},
			{
				// 删除端口
				Method:  http.MethodDelete,
				Path:    "/vm/deletePort",
				Handler: vm.DeletePortHandler(serverCtx),
			},
			{
				// 删除路由
				Method:  http.MethodDelete,
				Path:    "/vm/deleteRouter",
				Handler: vm.DeleteRouterHandler(serverCtx),
			},
			{
				// 删除安全组
				Method:  http.MethodDelete,
				Path:    "/vm/deleteSecurityGroup",
				Handler: vm.DeleteSecurityGroupHandler(serverCtx),
			},
			{
				// 删除安全组规则
				Method:  http.MethodDelete,
				Path:    "/vm/deleteSecurityGroupRule",
				Handler: vm.DeleteSecurityGroupRuleHandler(serverCtx),
			},
			{
				// 删除虚拟机
				Method:  http.MethodDelete,
				Path:    "/vm/deleteServer",
				Handler: vm.DeleteServerHandler(serverCtx),
			},
			{
				// 删除子网
				Method:  http.MethodDelete,
				Path:    "/vm/deleteSubnet",
				Handler: vm.DeleteSubnetHandler(serverCtx),
			},
			{
				// 删除卷
				Method:  http.MethodDelete,
				Path:    "/vm/deleteVolume",
				Handler: vm.DeleteVolumeHandler(serverCtx),
			},
			{
				// 删除卷类型
				Method:  http.MethodDelete,
				Path:    "/vm/deleteVolumeType",
				Handler: vm.DeleteVolumeTypeHandler(serverCtx),
			},
			{
				// openstack计算中心概览
				Method:  http.MethodGet,
				Path:    "/vm/getComputeLimits",
				Handler: vm.GetComputeLimitsHandler(serverCtx),
			},
			{
				// 查询镜像数量
				Method:  http.MethodGet,
				Path:    "/vm/getImageNum",
				Handler: vm.GetImageNumHandler(serverCtx),
			},
			{
				// 查询网络数量
				Method:  http.MethodGet,
				Path:    "/vm/getNetworkNum",
				Handler: vm.GetNetworkNumHandler(serverCtx),
			},
			{
				// 查询虚拟机概览数据
				Method:  http.MethodGet,
				Path:    "/vm/getOpenstackOverview",
				Handler: vm.GetOpenstackOverviewHandler(serverCtx),
			},
			{
				// 根据ID查询虚拟机详情
				Method:  http.MethodGet,
				Path:    "/vm/getServersDetailedById",
				Handler: vm.GetServersDetailedByIdHandler(serverCtx),
			},
			{
				// 根据ID获取卷详情
				Method:  http.MethodGet,
				Path:    "/vm/getVolumeDetailedById",
				Handler: vm.GetVolumeDetailedByIdHandler(serverCtx),
			},
			{
				// 查询卷列表
				Method:  http.MethodGet,
				Path:    "/vm/getVolumeLimits",
				Handler: vm.GetVolumeLimitsHandler(serverCtx),
			},
			{
				// 查询防火墙列表
				Method:  http.MethodGet,
				Path:    "/vm/listFirewallGroups",
				Handler: vm.ListFirewallGroupsHandler(serverCtx),
			},
			{
				// 查询防火墙策略列表
				Method:  http.MethodGet,
				Path:    "/vm/listFirewallPolicies",
				Handler: vm.ListFirewallPoliciesHandler(serverCtx),
			},
			{
				// 查询防火墙策略列表
				Method:  http.MethodGet,
				Path:    "/vm/listFirewallRules",
				Handler: vm.ListFirewallRulesHandler(serverCtx),
			},
			{
				// 查询规格详情列表
				Method:  http.MethodGet,
				Path:    "/vm/listFlavorsDetail",
				Handler: vm.ListFlavorsDetailHandler(serverCtx),
			},
			{
				// 查询浮动ip列表
				Method:  http.MethodGet,
				Path:    "/vm/listFloatingIPs",
				Handler: vm.ListFloatingIPsHandler(serverCtx),
			},
			{
				// 查询镜像列表
				Method:  http.MethodGet,
				Path:    "/vm/listImages",
				Handler: vm.ListImagesHandler(serverCtx),
			},
			{
				// 查询网络列表
				Method:  http.MethodGet,
				Path:    "/vm/listNetworkSegmentRanges",
				Handler: vm.ListNetworkSegmentRangesRangeHandler(serverCtx),
			},
			{
				// 查询网络列表
				Method:  http.MethodGet,
				Path:    "/vm/listNetworks",
				Handler: vm.ListNetworksHandler(serverCtx),
			},
			{
				// 查询节点列表
				Method:  http.MethodGet,
				Path:    "/vm/listNodes",
				Handler: vm.ListNodesHandler(serverCtx),
			},
			{
				// 查询端口列表
				Method:  http.MethodGet,
				Path:    "/vm/listPortsReq",
				Handler: vm.ListPortsHandler(serverCtx),
			},
			{
				// 查询路由列表
				Method:  http.MethodGet,
				Path:    "/vm/listRouters",
				Handler: vm.ListRoutersHandler(serverCtx),
			},
			{
				// 查询安全组规则列表
				Method:  http.MethodGet,
				Path:    "/vm/listSecurityGroupRules",
				Handler: vm.ListSecurityGroupRulesHandler(serverCtx),
			},
			{
				// 查询安全组列表
				Method:  http.MethodGet,
				Path:    "/vm/listSecurityGroups",
				Handler: vm.ListSecurityGroupsHandler(serverCtx),
			},
			{
				// 查询虚拟机列表
				Method:  http.MethodGet,
				Path:    "/vm/listServer",
				Handler: vm.ListServerHandler(serverCtx),
			},
			{
				// 查询虚拟机详情列表
				Method:  http.MethodGet,
				Path:    "/vm/listServersDetailed",
				Handler: vm.ListServersDetailedHandler(serverCtx),
			},
			{
				// 查询子网列表
				Method:  http.MethodGet,
				Path:    "/vm/listSubnets",
				Handler: vm.ListSubnetsHandler(serverCtx),
			},
			{
				// 查询规格类型列表
				Method:  http.MethodGet,
				Path:    "/vm/listVolumeTypes",
				Handler: vm.ListVolumeTypesHandler(serverCtx),
			},
			{
				// 查询卷列表
				Method:  http.MethodGet,
				Path:    "/vm/listVolumes",
				Handler: vm.ListVolumesHandler(serverCtx),
			},
			{
				// 查询卷详情列表
				Method:  http.MethodGet,
				Path:    "/vm/listVolumesDetail",
				Handler: vm.ListVolumesDetailHandler(serverCtx),
			},
			{
				// 迁移
				Method:  http.MethodPost,
				Path:    "/vm/migrateServer",
				Handler: vm.MigrateServerHandler(serverCtx),
			},
			{
				// 暂停虚拟机
				Method:  http.MethodPost,
				Path:    "/vm/pauseServer",
				Handler: vm.PauseServerHandler(serverCtx),
			},
			{
				// 重启虚拟机
				Method:  http.MethodPost,
				Path:    "/vm/rebootServer",
				Handler: vm.RebootServerHandler(serverCtx),
			},
			{
				// 从服务器中删除安全
				Method:  http.MethodPost,
				Path:    "/vm/removeSecurityGroup",
				Handler: vm.RemoveSecurityGroupHandler(serverCtx),
			},
			{
				// 救援
				Method:  http.MethodPost,
				Path:    "/vm/rescueServer",
				Handler: vm.RescueServerHandler(serverCtx),
			},
			{
				// 调整大小
				Method:  http.MethodPost,
				Path:    "/vm/resizeServer",
				Handler: vm.ResizeServerHandler(serverCtx),
			},
			{
				// 搁置
				Method:  http.MethodPost,
				Path:    "/vm/shelveServer",
				Handler: vm.ShelveServerHandler(serverCtx),
			},
			{
				// 查询防火墙详情
				Method:  http.MethodGet,
				Path:    "/vm/showFirewallGroupDetails",
				Handler: vm.ShowFirewallGroupDetailsHandler(serverCtx),
			},
			{
				// 查询防火墙策略详情
				Method:  http.MethodGet,
				Path:    "/vm/showFirewallPolicyDetails",
				Handler: vm.ShowFirewallPolicyDetailsHandler(serverCtx),
			},
			{
				// 查询防火墙策略详情
				Method:  http.MethodGet,
				Path:    "/vm/showFirewallRuleDetails",
				Handler: vm.ShowFirewallRuleDetailsHandler(serverCtx),
			},
			{
				// 查询浮动ip详情
				Method:  http.MethodGet,
				Path:    "/vm/showFloatingIPDetails",
				Handler: vm.ShowFloatingIPDetailsHandler(serverCtx),
			},
			{
				// 查询网络详情
				Method:  http.MethodGet,
				Path:    "/vm/showNetworkDetails",
				Handler: vm.ShowNetworkDetailsHandler(serverCtx),
			},
			{
				// 显示网段详情
				Method:  http.MethodGet,
				Path:    "/vm/showNetworkSegmentRangeDetails",
				Handler: vm.ShowNetworkSegmentRangeDetailsHandler(serverCtx),
			},
			{
				// 查询节点详情
				Method:  http.MethodGet,
				Path:    "/vm/showNodeDetails",
				Handler: vm.ShowNodeDetailsHandler(serverCtx),
			},
			{
				// 查询端口详情
				Method:  http.MethodGet,
				Path:    "/vm/showPortDetails",
				Handler: vm.ShowPortDetailsHandler(serverCtx),
			},
			{
				// 查询路由详情
				Method:  http.MethodGet,
				Path:    "/vm/showRouterDetails",
				Handler: vm.ShowRouterDetailsHandler(serverCtx),
			},
			{
				// 查询安全组详情
				Method:  http.MethodGet,
				Path:    "/vm/showSecurityGroup",
				Handler: vm.ShowSecurityGroupHandler(serverCtx),
			},
			{
				// 查询安全组规则详情
				Method:  http.MethodGet,
				Path:    "/vm/showSecurityGroupRule",
				Handler: vm.ShowSecurityGroupRuleHandler(serverCtx),
			},
			{
				// 启动虚拟机
				Method:  http.MethodPost,
				Path:    "/vm/startServer",
				Handler: vm.StartServerHandler(serverCtx),
			},
			{
				// 停止虚拟机
				Method:  http.MethodPost,
				Path:    "/vm/stopServer",
				Handler: vm.StopServerHandler(serverCtx),
			},
			{
				// 中止
				Method:  http.MethodPost,
				Path:    "/vm/suspendServer",
				Handler: vm.SuspendServerHandler(serverCtx),
			},
			{
				// 取消救援
				Method:  http.MethodPost,
				Path:    "/vm/unRescueServer",
				Handler: vm.UnRescueHandler(serverCtx),
			},
			{
				// 取消暂停虚拟机
				Method:  http.MethodPost,
				Path:    "/vm/unpauseServer",
				Handler: vm.UnpauseServerHandler(serverCtx),
			},
			{
				// 修改防火墙
				Method:  http.MethodPut,
				Path:    "/vm/updateFirewallGroup",
				Handler: vm.UpdateFirewallGroupHandler(serverCtx),
			},
			{
				// 修改浮动ip
				Method:  http.MethodPut,
				Path:    "/vm/updateFloatingIP",
				Handler: vm.UpdateFloatingIPHandler(serverCtx),
			},
			{
				// 更新网络
				Method:  http.MethodPut,
				Path:    "/vm/updateNetwork",
				Handler: vm.UpdateNetworkHandler(serverCtx),
			},
			{
				// 修改网段
				Method:  http.MethodPut,
				Path:    "/vm/updateNetworkSegmentRanges",
				Handler: vm.UpdateNetworkSegmentRangesHandler(serverCtx),
			},
			{
				// 修改端口
				Method:  http.MethodPut,
				Path:    "/vm/updatePort",
				Handler: vm.UpdatePortHandler(serverCtx),
			},
			{
				// 修改路由
				Method:  http.MethodPut,
				Path:    "/vm/updateRouter",
				Handler: vm.UpdateRouterHandler(serverCtx),
			},
			{
				// 修改安全组
				Method:  http.MethodPut,
				Path:    "/vm/updateSecurityGroup",
				Handler: vm.UpdateSecurityGroupHandler(serverCtx),
			},
			{
				// 更新虚拟机
				Method:  http.MethodPut,
				Path:    "/vm/updateServer",
				Handler: vm.UpdateServerHandler(serverCtx),
			},
			{
				// 修改子网
				Method:  http.MethodPut,
				Path:    "/vm/updateSubnet",
				Handler: vm.UpdateSubnetHandler(serverCtx),
			},
			{
				// 更新卷
				Method:  http.MethodPut,
				Path:    "/vm/updateVolume",
				Handler: vm.UpdateVolumeHandler(serverCtx),
			},
			{
				// 上传镜像
				Method:  http.MethodPut,
				Path:    "/vm/uploadImage",
				Handler: vm.UploadImageHandler(serverCtx),
			},
		},
		rest.WithPrefix("/pcm/v1"),
	)
}
