") + if len(parts) < 3 { + return item + } + item.CreatedAt = strings.ReplaceAll(strings.TrimSpace(parts[1]), "
", "") + for i := 1; i < len(parts); i++ { + if strings.Contains(parts[i], "问题修复") { + item.FixCount = strings.Count(parts[i], "%s
", item.CreatedAt), "", 1) + item.Version = version + return item +} + +func (u *UpgradeService) handleBackup(originalDir string) error { + if err := files.CopyItem(false, true, "/usr/local/bin/1panel-core", originalDir); err != nil { + return err + } + if err := files.CopyItem(false, true, "/usr/local/bin/1panel-agent", originalDir); err != nil { + return err + } + if err := files.CopyItem(false, true, "/usr/local/bin/1pctl", originalDir); err != nil { + return err + } + if err := files.CopyItem(true, true, "/usr/local/bin/lang", originalDir); err != nil { + return err + } + if err := files.CopyItem(false, true, path.Join(svcBasePath, svcCoreName), originalDir); err != nil { + return err + } + if err := files.CopyItem(false, true, path.Join(svcBasePath, svcAgentName), originalDir); err != nil { + return err + } + if err := files.CopyItem(true, true, path.Join(global.CONF.Base.InstallDir, "1panel/db"), originalDir); err != nil { + return err + } + if err := files.CopyItem(false, true, path.Join(global.CONF.Base.InstallDir, "1panel/geo/GeoIP.mmdb"), originalDir); err != nil { + return err + } + return nil +} + +func (u *UpgradeService) handleRollback(originalDir string, errStep int) { + _ = settingRepo.Update("SystemStatus", "Free") + dbPath := path.Join(global.CONF.Base.InstallDir, "1panel") + if _, err := os.Stat(path.Join(originalDir, "db")); err == nil { + if err := files.CopyItem(true, true, path.Join(originalDir, "db"), dbPath); err != nil { + global.LOG.Errorf("rollback 1panel db failed, err: %v", err) + } + } + if err := files.CopyItem(false, true, path.Join(originalDir, "1panel-core"), "/usr/local/bin"); err != nil { + global.LOG.Errorf("rollback 1panel-core failed, err: %v", err) + } + if err := files.CopyItem(false, true, path.Join(originalDir, "1panel-agent"), "/usr/local/bin"); err != nil { + global.LOG.Errorf("rollback 1panel-agent failed, err: %v", err) + } + if errStep == 1 { + return + } + if err := files.CopyItem(false, true, path.Join(originalDir, "1pctl"), "/usr/local/bin"); err != nil { + global.LOG.Errorf("rollback 1pctl failed, err: %v", err) + } + if errStep == 2 { + return + } + if err := files.CopyItem(false, true, path.Join(originalDir, svcCoreName), svcBasePath); err != nil { + global.LOG.Errorf("rollback %s failed, err: %v", svcCoreName, err) + } + if err := files.CopyItem(false, true, path.Join(originalDir, svcAgentName), svcBasePath); err != nil { + global.LOG.Errorf("rollback %s failed, err: %v", svcAgentName, err) + } + if errStep == 3 { + return + } + if err := files.CopyItem(true, true, path.Join(originalDir, "lang"), "/usr/local/bin"); err != nil { + global.LOG.Errorf("rollback language files failed, err: %v", err) + } + if err := files.CopyItem(false, true, path.Join(originalDir, "GeoIP.mmdb"), path.Join(global.CONF.Base.InstallDir, "1panel/geo")); err != nil { + global.LOG.Errorf("rollback GeoIP database failed, err: %v", err) + } +} + +func (u *UpgradeService) loadVersionByMode(developer, currentVersion string) (string, string, string) { + var current, latest string + if global.CONF.Base.Mode == "dev" { + devVersionLatest := u.loadVersion(true, currentVersion, "dev") + return devVersionLatest, "", "" + } + + betaVersionLatest := "" + latest = u.loadVersion(true, currentVersion, "stable") + current = u.loadVersion(false, currentVersion, "stable") + if developer == constant.StatusEnable { + betaVersionLatest = u.loadVersion(true, currentVersion, "beta") + } + if current != latest { + return betaVersionLatest, current, latest + } + + versionPart := strings.Split(current, ".") + if len(versionPart) < 3 { + return betaVersionLatest, "", latest + } + num, _ := strconv.Atoi(versionPart[1]) + if num == 0 { + return betaVersionLatest, "", latest + } + if num >= 10 { + if current[:6] == currentVersion[:6] { + return betaVersionLatest, current, "" + } + return betaVersionLatest, "", latest + } + if current[:5] == currentVersion[:5] { + return betaVersionLatest, "", "" + } + return betaVersionLatest, "", latest +} + +func (u *UpgradeService) loadVersion(isLatest bool, currentVersion, mode string) string { + path := fmt.Sprintf("%s/%s/latest", global.CONF.RemoteURL.RepoUrl, mode) + if !isLatest { + path = fmt.Sprintf("%s/%s/latest.current", global.CONF.RemoteURL.RepoUrl, mode) + } + _, latestVersionRes, err := req_helper.HandleRequestWithProxy(path, http.MethodGet, constant.TimeOut20s) + if err != nil { + global.LOG.Errorf("load latest version from oss failed, err: %v", err) + return "" + } + version := string(latestVersionRes) + if strings.Contains(version, "<") { + global.LOG.Errorf("load latest version from oss failed, err: %v", version) + return "" + } + if isLatest { + return u.checkVersion(version, currentVersion) + } + + versionMap := make(map[string]string) + if err := json.Unmarshal(latestVersionRes, &versionMap); err != nil { + global.LOG.Errorf("load latest version from oss failed (error unmarshal), err: %v", err) + return "" + } + + versionPart := strings.Split(currentVersion, ".") + if len(versionPart) < 3 { + global.LOG.Errorf("current version is error format: %s", currentVersion) + return "" + } + num, _ := strconv.Atoi(versionPart[1]) + if num >= 10 { + if version, ok := versionMap[currentVersion[0:5]]; ok { + return u.checkVersion(version, currentVersion) + } + return "" + } + if version, ok := versionMap[currentVersion[0:4]]; ok { + return u.checkVersion(version, currentVersion) + } + return "" +} + +func (u *UpgradeService) checkVersion(v2, v1 string) string { + addSuffix := false + if !strings.Contains(v1, "-") { + v1 = v1 + "-lts" + } + if !strings.Contains(v2, "-") { + addSuffix = true + v2 = v2 + "-lts" + } + if common.ComparePanelVersion(v2, v1) { + if addSuffix { + return strings.TrimSuffix(v2, "-lts") + } + return v2 + } + return "" +} + +func (u *UpgradeService) loadReleaseNotes(path string) (string, error) { + _, releaseNotes, err := req_helper.HandleRequestWithProxy(path, http.MethodGet, constant.TimeOut20s) + if err != nil { + return "", err + } + return string(releaseNotes), nil +} + +func loadArch() (string, error) { + std, err := cmd.RunDefaultWithStdoutBashC("uname -a") + if err != nil { + return "", fmt.Errorf("std: %s, err: %s", std, err.Error()) + } + if strings.Contains(std, "x86_64") { + return "amd64", nil + } + if strings.Contains(std, "arm64") || strings.Contains(std, "aarch64") { + return "arm64", nil + } + if strings.Contains(std, "armv7l") { + return "armv7", nil + } + if strings.Contains(std, "ppc64le") { + return "ppc64le", nil + } + if strings.Contains(std, "s390x") { + return "s390x", nil + } + if strings.Contains(std, "riscv64") { + return "riscv64", nil + } + return "", fmt.Errorf("unsupported such arch: %s", std) +} + +func dropBackupCopies() { + backupCopies, _ := settingRepo.GetValueByKey("UpgradeBackupCopies") + copies, _ := strconv.Atoi(backupCopies) + if copies == 0 { + return + } + backupDir := path.Join(global.CONF.Base.InstallDir, "1panel/tmp/upgrade") + upgradeDir, err := os.ReadDir(backupDir) + if err != nil { + global.LOG.Errorf("read upgrade dir failed, err: %v", err) + return + } + var versions []string + for _, item := range upgradeDir { + if item.IsDir() && strings.HasPrefix(item.Name(), "v") { + versions = append(versions, item.Name()) + } + } + if len(versions) <= copies { + return + } + sort.Slice(versions, func(i, j int) bool { + return common.ComparePanelVersion(versions[i], versions[j]) + }) + for i := copies; i < len(versions); i++ { + _ = os.RemoveAll(backupDir + "/" + versions[i]) + } +} diff --git a/core/app/task/task.go b/core/app/task/task.go new file mode 100644 index 0000000..b82b822 --- /dev/null +++ b/core/app/task/task.go @@ -0,0 +1,278 @@ +package task + +import ( + "context" + "fmt" + "os" + "path" + "strconv" + "time" + + "github.com/1Panel-dev/1Panel/core/app/model" + "github.com/1Panel-dev/1Panel/core/app/repo" + "github.com/1Panel-dev/1Panel/core/buserr" + "github.com/1Panel-dev/1Panel/core/constant" + "github.com/1Panel-dev/1Panel/core/global" + "github.com/1Panel-dev/1Panel/core/i18n" + "github.com/google/uuid" + "github.com/sirupsen/logrus" +) + +type ActionFunc func(*Task) error +type RollbackFunc func(*Task) + +type Task struct { + Name string + TaskID string + Logger *logrus.Logger + SubTasks []*SubTask + Rollbacks []RollbackFunc + logFile *os.File + taskRepo repo.ITaskRepo + Task *model.Task + ParentID string + CancelWhenTimeout bool +} + +type SubTask struct { + RootTask *Task + Name string + StepAlias string + Retry int + Timeout time.Duration + Action ActionFunc + Rollback RollbackFunc + Error error + IgnoreErr bool + CancelWhenTimeout bool +} + +const ( + TaskUpgrade = "TaskUpgrade" + TaskAddNode = "TaskAddNode" + TaskSync = "TaskSync" + TaskSyncForNode = "TaskSyncForNode" + TaskRsync = "TaskRsync" + TaskInstallCluster = "TaskInstallCluster" + TaskCreateCluster = "TaskCreateCluster" + TaskBackup = "TaskBackup" + TaskPush = "TaskPush" +) + +const ( + TaskScopeSystem = "System" + TaskScopeScript = "ScriptLibrary" + TaskScopeNodeFile = "NodeFile" + TaskScopeAppBackup = "AppBackup" + TaskScopeCluster = "Cluster" + TaskScopeAppInstall = "AppInstallTask" +) + +func GetTaskName(resourceName, operate, scope string) string { + return fmt.Sprintf("%s%s [%s]", i18n.GetMsgByKey(operate), i18n.GetMsgByKey(scope), resourceName) +} + +func NewTaskWithOps(resourceName, operate, scope, taskID string, resourceID uint) (*Task, error) { + return NewTask(GetTaskName(resourceName, operate, scope), operate, scope, taskID, resourceID) +} + +func NewTask(name, operate, taskScope, taskID string, resourceID uint) (*Task, error) { + if taskID == "" { + taskID = uuid.New().String() + } + logItem := path.Join(global.CONF.Base.InstallDir, "1panel/log/task") + logDir := path.Join(logItem, taskScope) + if _, err := os.Stat(logDir); os.IsNotExist(err) { + if err = os.MkdirAll(logDir, constant.DirPerm); err != nil { + return nil, fmt.Errorf("failed to create log directory: %w", err) + } + } + logPath := path.Join(logItem, taskScope, taskID+".log") + logger := logrus.New() + logger.SetFormatter(&SimpleFormatter{}) + logFile, err := os.OpenFile(logPath, os.O_TRUNC|os.O_CREATE|os.O_WRONLY, constant.FilePerm) + if err != nil { + return nil, fmt.Errorf("failed to open log file: %w", err) + } + logger.SetOutput(logFile) + taskModel := &model.Task{ + ID: taskID, + Name: name, + Type: taskScope, + LogFile: logPath, + Status: constant.StatusExecuting, + ResourceID: resourceID, + Operate: operate, + } + taskRepo := repo.NewITaskRepo() + task := &Task{Name: name, logFile: logFile, Logger: logger, taskRepo: taskRepo, Task: taskModel} + return task, nil +} + +func (t *Task) AddSubTask(name string, action ActionFunc, rollback RollbackFunc) { + subTask := &SubTask{RootTask: t, Name: name, Retry: 0, Timeout: 10 * time.Minute, Action: action, Rollback: rollback} + t.SubTasks = append(t.SubTasks, subTask) +} + +func (t *Task) AddSubTaskWithAlias(key string, action ActionFunc, rollback RollbackFunc) { + subTask := &SubTask{RootTask: t, Name: i18n.GetMsgByKey(key), StepAlias: key, Retry: 0, Timeout: 10 * time.Minute, Action: action, Rollback: rollback} + t.SubTasks = append(t.SubTasks, subTask) +} + +func (t *Task) AddSubTaskWithOps(name string, action ActionFunc, rollback RollbackFunc, retry int, timeout time.Duration) { + subTask := &SubTask{RootTask: t, Name: name, Retry: retry, Timeout: timeout, Action: action, Rollback: rollback} + t.SubTasks = append(t.SubTasks, subTask) +} + +func (t *Task) AddSubTaskWithIgnoreErr(name string, action ActionFunc) { + subTask := &SubTask{RootTask: t, Name: name, Retry: 0, Timeout: 10 * time.Minute, Action: action, Rollback: nil, IgnoreErr: true} + t.SubTasks = append(t.SubTasks, subTask) +} + +func (s *SubTask) Execute() error { + subTaskName := s.Name + if s.Name == "" { + subTaskName = i18n.GetMsgByKey("SubTask") + } + s.RootTask.LogStart(subTaskName) + var err error + for i := 0; i < s.Retry+1; i++ { + if i > 0 { + s.RootTask.Log(i18n.GetWithName("TaskRetry", strconv.Itoa(i))) + } + ctx, cancel := context.WithTimeout(context.Background(), s.Timeout) + defer cancel() + + done := make(chan error) + go func() { + done <- s.Action(s.RootTask) + }() + + select { + case <-ctx.Done(): + s.RootTask.Log(i18n.GetWithName("TaskTimeout", subTaskName)) + if s.CancelWhenTimeout { + return buserr.New(i18n.GetWithName("TaskTimeout", subTaskName)) + } + case err = <-done: + if err != nil { + s.RootTask.Log(i18n.GetWithNameAndErr("SubTaskFailed", subTaskName, err)) + } else { + s.RootTask.Log(i18n.GetWithName("SubTaskSuccess", subTaskName)) + return nil + } + } + + if i == s.Retry { + if s.Rollback != nil { + s.Rollback(s.RootTask) + } + } + time.Sleep(1 * time.Second) + } + return err +} + +func (t *Task) updateTask(task *model.Task) { + _ = t.taskRepo.Update(context.Background(), task) +} + +func (t *Task) Execute() error { + if err := t.taskRepo.Save(context.Background(), t.Task); err != nil { + return err + } + var err error + t.Log(i18n.GetWithName("TaskStart", t.Name)) + for _, subTask := range t.SubTasks { + subTask.CancelWhenTimeout = t.CancelWhenTimeout + t.Task.CurrentStep = subTask.StepAlias + t.updateTask(t.Task) + if err = subTask.Execute(); err == nil { + if subTask.Rollback != nil { + t.Rollbacks = append(t.Rollbacks, subTask.Rollback) + } + } else { + if subTask.IgnoreErr { + err = nil + continue + } + t.Task.ErrorMsg = err.Error() + t.Task.Status = constant.StatusFailed + for _, rollback := range t.Rollbacks { + rollback(t) + } + t.updateTask(t.Task) + break + } + } + if t.Task.Status == constant.StatusExecuting { + t.Task.Status = constant.StatusSuccess + t.Log(i18n.GetWithName("TaskSuccess", t.Name)) + } else { + t.Log(i18n.GetWithName("TaskFailed", t.Name)) + } + t.Log("[TASK-END]") + t.Task.EndAt = time.Now() + t.updateTask(t.Task) + _ = t.logFile.Close() + return err +} + +func (t *Task) DeleteLogFile() { + _ = os.Remove(t.Task.LogFile) +} + +func (t *Task) LogWithStatus(msg string, err error) { + if err != nil { + t.Logger.Print(i18n.GetWithNameAndErr("FailedStatus", msg, err)) + } else { + t.Logger.Print(i18n.GetWithName("SuccessStatus", msg)) + } +} + +func (t *Task) Log(msg string) { + t.Logger.Print(msg) +} + +func (t *Task) Logf(format string, v ...any) { + t.Logger.Printf(format, v...) +} + +func (t *Task) LogFailed(msg string) { + t.Logger.Print(msg + i18n.GetMsgByKey("Failed")) +} + +func (t *Task) LogFailedWithErr(msg string, err error) { + t.Logger.Printf("%s %s : %s", msg, i18n.GetMsgByKey("Failed"), err.Error()) +} + +func (t *Task) LogSuccess(msg string) { + t.Logger.Print(msg + i18n.GetMsgByKey("Success")) +} +func (t *Task) LogSuccessF(format string, v ...any) { + t.Logger.Print(fmt.Sprintf(format, v...) + i18n.GetMsgByKey("Success")) +} + +func (t *Task) LogStart(msg string) { + t.Logger.Printf("%s%s", i18n.GetMsgByKey("Start"), msg) +} + +func (t *Task) LogWithOps(operate, msg string) { + t.Logger.Printf("%s%s", i18n.GetMsgByKey(operate), msg) +} + +func (t *Task) LogSuccessWithOps(operate, msg string) { + t.Logger.Printf("%s%s%s", i18n.GetMsgByKey(operate), msg, i18n.GetMsgByKey("Success")) +} + +func (t *Task) LogFailedWithOps(operate, msg string, err error) { + t.Logger.Printf("%s%s%s : %s ", i18n.GetMsgByKey(operate), msg, i18n.GetMsgByKey("Failed"), err.Error()) +} + +type SimpleFormatter struct{} + +func (f *SimpleFormatter) Format(entry *logrus.Entry) ([]byte, error) { + timestamp := entry.Time.Format("2006/01/02 15:04:05") + message := fmt.Sprintf("%s %s\n", timestamp, entry.Message) + return []byte(message), nil +} diff --git a/core/buserr/errors.go b/core/buserr/errors.go new file mode 100644 index 0000000..aab8f6a --- /dev/null +++ b/core/buserr/errors.go @@ -0,0 +1,107 @@ +package buserr + +import ( + "github.com/1Panel-dev/1Panel/core/i18n" + "github.com/pkg/errors" +) + +type BusinessError struct { + Msg string + Detail interface{} + Map map[string]interface{} + Err error +} + +func (e BusinessError) Error() string { + content := "" + if e.Detail != nil { + content = i18n.GetErrMsg(e.Msg, map[string]interface{}{"detail": e.Detail}) + } else if e.Map != nil { + content = i18n.GetErrMsg(e.Msg, e.Map) + } else { + content = i18n.GetErrMsg(e.Msg, nil) + } + if content == "" { + if e.Err != nil { + return e.Err.Error() + } + return errors.New(e.Msg).Error() + } + return content +} + +func New(key string, opts ...Option) BusinessError { + be := BusinessError{ + Msg: key, + } + + for _, opt := range opts { + opt(&be) + } + + return be +} + +func WithErr(Key string, err error) BusinessError { + paramMap := map[string]interface{}{} + if err != nil { + paramMap["err"] = err + } + return BusinessError{ + Msg: Key, + Map: paramMap, + Err: err, + } +} + +func WithDetail(Key string, detail interface{}, err error) BusinessError { + return BusinessError{ + Msg: Key, + Detail: detail, + Err: err, + } +} + +func WithMap(Key string, maps map[string]interface{}, err error) BusinessError { + return BusinessError{ + Msg: Key, + Map: maps, + Err: err, + } +} + +func WithName(Key string, name string) BusinessError { + paramMap := map[string]interface{}{} + if name != "" { + paramMap["name"] = name + } + return BusinessError{ + Msg: Key, + Map: paramMap, + } +} + +type Option func(*BusinessError) + +func WithNameOption(name string) Option { + return func(be *BusinessError) { + if name != "" { + if be.Map == nil { + be.Map = make(map[string]interface{}) + } + be.Map["name"] = name + } + } +} + +func WithErrOption(err error) Option { + return func(be *BusinessError) { + be.Err = err + if err != nil { + if be.Map == nil { + be.Map = make(map[string]interface{}) + } + be.Map["err"] = err + } + } +} diff --git a/core/buserr/multi_err.go b/core/buserr/multi_err.go new file mode 100644 index 0000000..bf0c875 --- /dev/null +++ b/core/buserr/multi_err.go @@ -0,0 +1,23 @@ +package buserr + +import ( + "bytes" + "fmt" + "sort" +) + +type MultiErr map[string]error + +func (e MultiErr) Error() string { + var keys []string + for key := range e { + keys = append(keys, key) + } + sort.Strings(keys) + + buffer := bytes.NewBufferString("") + for _, key := range keys { + buffer.WriteString(fmt.Sprintf("[%s] %s\n", key, e[key])) + } + return buffer.String() +} diff --git a/core/cmd/server/app/app_config.go b/core/cmd/server/app/app_config.go new file mode 100644 index 0000000..d4d1559 --- /dev/null +++ b/core/cmd/server/app/app_config.go @@ -0,0 +1,14 @@ +package app + +import ( + _ "embed" +) + +//go:embed app_config.yml +var Config []byte + +//go:embed logo.png +var Logo []byte + +//go:embed app_param.yml +var Param []byte diff --git a/core/cmd/server/app/app_config.yml b/core/cmd/server/app/app_config.yml new file mode 100644 index 0000000..31dbd25 --- /dev/null +++ b/core/cmd/server/app/app_config.yml @@ -0,0 +1,21 @@ +additionalProperties: + key: #应用的 key ,仅限英文,用于在 Linux 创建文件夹 + name: #应用名称 + tags: + - Tool #应用标签,可以有多个,请参照下方的标签列表 + shortDescZh: #应用中文描述,不要超过30个字 + shortDescEn: #应用英文描述 + type: tool #应用类型,区别于应用分类,只能有一个,请参照下方的类型列表 + crossVersionUpdate: #是否可以跨大版本升级 + limit: #应用安装数量限制,0 代表无限制 + website: #官网地址 + github: #github 地址 + description: + en: + zh: #应用中文描述,不要超过30个字 + zh-Hant: + ja: + ms: + pt-br: + ru: + ko: \ No newline at end of file diff --git a/core/cmd/server/app/app_param.yml b/core/cmd/server/app/app_param.yml new file mode 100644 index 0000000..426fa78 --- /dev/null +++ b/core/cmd/server/app/app_param.yml @@ -0,0 +1,10 @@ +additionalProperties: + formFields: + - default: 8080 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number diff --git a/core/cmd/server/app/logo.png b/core/cmd/server/app/logo.png new file mode 100644 index 0000000..6f82a12 Binary files /dev/null and b/core/cmd/server/app/logo.png differ diff --git a/core/cmd/server/cmd/app.go b/core/cmd/server/cmd/app.go new file mode 100644 index 0000000..3ea2816 --- /dev/null +++ b/core/cmd/server/cmd/app.go @@ -0,0 +1,159 @@ +package cmd + +import ( + "bytes" + "fmt" + "github.com/1Panel-dev/1Panel/core/cmd/server/app" + "github.com/1Panel-dev/1Panel/core/i18n" + "io" + "os" + + "github.com/pkg/errors" + "github.com/spf13/cobra" +) + +var ( + appKey string + appVersion string +) + +func init() { + appCmd.SetHelpFunc(func(c *cobra.Command, s []string) { + i18n.UseI18nForCmd(language) + loadAppHelper() + }) + initCmd.SetHelpFunc(func(c *cobra.Command, s []string) { + i18n.UseI18nForCmd(language) + loadAppInitHelper() + }) + initCmd.Flags().StringVarP(&appKey, "key", "k", "", "") + initCmd.Flags().StringVarP(&appVersion, "version", "v", "", "") + appCmd.AddCommand(initCmd) + RootCmd.AddCommand(appCmd) +} + +var appCmd = &cobra.Command{ + Use: "app", +} + +var initCmd = &cobra.Command{ + Use: "init", + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + if !isRoot() { + fmt.Println(i18n.GetMsgWithMapForCmd("SudoHelper", map[string]interface{}{"cmd": "sudo 1pctl app init"})) + return nil + } + if len(args) > 0 { + appKey = args[0] + if len(args) > 1 { + appVersion = args[1] + } + } + if appKey == "" { + fmt.Println(i18n.GetMsgByKeyForCmd("AppMissKey")) + return nil + } + if appVersion == "" { + fmt.Println(i18n.GetMsgByKeyForCmd("AppMissVersion")) + return nil + } + appKeyPath := fmt.Sprintf("./%s", appKey) + if err := createFolder(appKeyPath); err != nil { + return err + } + configYamlPath := fmt.Sprintf("%s/data.yml", appKeyPath) + if err := createFile(configYamlPath); err != nil { + return err + } + if err := writeFile(configYamlPath, bytes.NewReader(app.Config)); err != nil { + return err + } + readMePath := fmt.Sprintf("%s/README.md", appKeyPath) + if err := createFile(readMePath); err != nil { + return err + } + logoPath := fmt.Sprintf("%s/logo.png", appKeyPath) + if err := createFile(logoPath); err != nil { + return err + } + if err := writeFile(logoPath, bytes.NewReader(app.Logo)); err != nil { + return err + } + versionPath := fmt.Sprintf("%s/%s", appKeyPath, appVersion) + if _, err := os.Stat(versionPath); err == nil { + return errors.New(i18n.GetMsgByKeyForCmd("AppVersionExist")) + } + if err := createFolder(versionPath); err != nil { + return err + } + versionParamPath := fmt.Sprintf("%s/%s", versionPath, "data.yml") + if err := createFile(versionParamPath); err != nil { + return err + } + if err := writeFile(versionParamPath, bytes.NewReader(app.Param)); err != nil { + return err + } + dockerComposeYamlPath := fmt.Sprintf("%s/%s", versionPath, "docker-compose.yml") + if err := createFile(dockerComposeYamlPath); err != nil { + return err + } + fmt.Println(i18n.GetMsgByKeyForCmd("AppCreateSuccessful")) + return nil + }, +} + +func createFile(filePath string) error { + if _, err := os.Stat(filePath); err == nil { + return nil + } + file, err := os.Create(filePath) + if err != nil { + fmt.Println(i18n.GetMsgWithMapForCmd("AppCreateFileErr", map[string]interface{}{"name": filePath, "err": err.Error()})) + return err + } + defer file.Close() + return nil +} + +func createFolder(dirPath string) error { + if _, err := os.Stat(dirPath); err == nil { + return nil + } + if err := os.MkdirAll(dirPath, 0755); err != nil { + fmt.Println(i18n.GetMsgWithMapForCmd("AppCreateDirErr", map[string]interface{}{"name": dirPath, "err": err.Error()})) + return err + } + return nil +} + +func writeFile(filePath string, in io.Reader) error { + data, err := io.ReadAll(in) + if err != nil { + fmt.Println(i18n.GetMsgWithMapForCmd("AppWriteErr", map[string]interface{}{"name": filePath, "err": err.Error()})) + return err + } + if err := os.WriteFile(filePath, data, 0755); err != nil { + fmt.Println(i18n.GetMsgWithMapForCmd("AppWriteErr", map[string]interface{}{"name": filePath, "err": err.Error()})) + return err + } + return nil +} + +func loadAppHelper() { + fmt.Println(i18n.GetMsgByKeyForCmd("AppCommands")) + fmt.Println("\nUsage:\n 1panel app [command]\n\nAvailable Commands:") + fmt.Println("\n init " + i18n.GetMsgByKeyForCmd("AppInit")) + fmt.Println("\nFlags:\n -h, --help help for app") + fmt.Println(" -k, --key string " + i18n.GetMsgByKeyForCmd("AppKeyVal")) + fmt.Println(" -v, --version string " + i18n.GetMsgByKeyForCmd("AppVersion")) + fmt.Println("\nUse \"1panel app [command] --help\" for more information about a command.") +} + +func loadAppInitHelper() { + fmt.Println(i18n.GetMsgByKeyForCmd("AppInit")) + fmt.Println("\nUsage:\n 1panel app init [flags]") + fmt.Println("\nFlags:\n -h, --help help for app") + fmt.Println(" -k, --key string " + i18n.GetMsgByKeyForCmd("AppKeyVal")) + fmt.Println(" -v, --version string " + i18n.GetMsgByKeyForCmd("AppVersion")) +} diff --git a/core/cmd/server/cmd/listen-ip.go b/core/cmd/server/cmd/listen-ip.go new file mode 100644 index 0000000..554be7d --- /dev/null +++ b/core/cmd/server/cmd/listen-ip.go @@ -0,0 +1,80 @@ +package cmd + +import ( + "fmt" + + "github.com/1Panel-dev/1Panel/core/constant" + "github.com/1Panel-dev/1Panel/core/i18n" + "github.com/spf13/cobra" +) + +func init() { + listenCmd.SetHelpFunc(func(c *cobra.Command, s []string) { + i18n.UseI18nForCmd(language) + loadListenIPHelper() + }) + + RootCmd.AddCommand(listenCmd) + listenCmd.AddCommand(listenIpv4Cmd) + listenCmd.AddCommand(listenIpv6Cmd) +} + +var listenCmd = &cobra.Command{ + Use: "listen-ip", + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + loadListenIPHelper() + return nil + }, +} + +var listenIpv4Cmd = &cobra.Command{ + Use: "ipv4", + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + return updateBindInfo("ipv4") + }, +} +var listenIpv6Cmd = &cobra.Command{ + Use: "ipv6", + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + return updateBindInfo("ipv6") + }, +} + +func updateBindInfo(protocol string) error { + if !isRoot() { + fmt.Println(i18n.GetMsgWithMapForCmd("SudoHelper", map[string]interface{}{"cmd": "sudo 1pctl listen-ip ipv6"})) + return nil + } + db, err := loadDBConn("core.db") + if err != nil { + return err + } + ipv6 := constant.StatusDisable + tcp := "tcp4" + address := "0.0.0.0" + if protocol == "ipv6" { + ipv6 = constant.StatusEnable + tcp = "tcp6" + address = "::" + } + if err := setSettingByKey(db, "Ipv6", ipv6); err != nil { + return err + } + if err := setSettingByKey(db, "BindAddress", address); err != nil { + return err + } + fmt.Println(i18n.GetMsgWithMapForCmd("ListenChangeSuccessful", map[string]interface{}{"value": fmt.Sprintf(" %s [%s]", tcp, address)})) + return nil +} + +func loadListenIPHelper() { + fmt.Println(i18n.GetMsgByKeyForCmd("UpdateCommands")) + fmt.Println("\nUsage:\n 1panel listen-ip [command]\n\nAvailable Commands:") + fmt.Println("\n ipv4 " + i18n.GetMsgByKeyForCmd("ListenIPv4")) + fmt.Println(" ipv6 " + i18n.GetMsgByKeyForCmd("ListenIPv6")) + fmt.Println("\nFlags:\n -h, --help help for listen-ip") + fmt.Println("\nUse \"1panel listen-ip [command] --help\" for more information about a command.") +} diff --git a/core/cmd/server/cmd/reset.go b/core/cmd/server/cmd/reset.go new file mode 100644 index 0000000..de29fb1 --- /dev/null +++ b/core/cmd/server/cmd/reset.go @@ -0,0 +1,147 @@ +package cmd + +import ( + "fmt" + + "github.com/1Panel-dev/1Panel/core/constant" + "github.com/1Panel-dev/1Panel/core/i18n" + "github.com/1Panel-dev/1Panel/core/utils/passkey" + "github.com/spf13/cobra" +) + +func init() { + resetCmd.SetHelpFunc(func(c *cobra.Command, s []string) { + i18n.UseI18nForCmd(language) + loadResetHelper() + }) + + RootCmd.AddCommand(resetCmd) + resetCmd.AddCommand(resetMFACmd) + resetCmd.AddCommand(resetSSLCmd) + resetCmd.AddCommand(resetEntranceCmd) + resetCmd.AddCommand(resetBindIpsCmd) + resetCmd.AddCommand(resetDomainCmd) + resetCmd.AddCommand(resetPasskeyCmd) +} + +var resetCmd = &cobra.Command{ + Use: "reset", + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + loadResetHelper() + return nil + }, +} + +var resetMFACmd = &cobra.Command{ + Use: "mfa", + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + if !isRoot() { + fmt.Println(i18n.GetMsgWithMapForCmd("SudoHelper", map[string]interface{}{"cmd": "sudo 1pctl reset mfa"})) + return nil + } + db, err := loadDBConn("core.db") + if err != nil { + return err + } + + return setSettingByKey(db, "MFAStatus", constant.StatusDisable) + }, +} +var resetSSLCmd = &cobra.Command{ + Use: "https", + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + if !isRoot() { + fmt.Println(i18n.GetMsgWithMapForCmd("SudoHelper", map[string]interface{}{"cmd": "sudo 1pctl reset https"})) + return nil + } + db, err := loadDBConn("core.db") + if err != nil { + return err + } + + return setSettingByKey(db, "SSL", constant.StatusDisable) + }, +} +var resetEntranceCmd = &cobra.Command{ + Use: "entrance", + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + if !isRoot() { + fmt.Println(i18n.GetMsgWithMapForCmd("SudoHelper", map[string]interface{}{"cmd": "sudo 1pctl reset entrance"})) + return nil + } + db, err := loadDBConn("core.db") + if err != nil { + return err + } + + return setSettingByKey(db, "SecurityEntrance", "") + }, +} +var resetBindIpsCmd = &cobra.Command{ + Use: "ips", + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + if !isRoot() { + fmt.Println(i18n.GetMsgWithMapForCmd("SudoHelper", map[string]interface{}{"cmd": "sudo 1pctl reset ips"})) + return nil + } + db, err := loadDBConn("core.db") + if err != nil { + return err + } + + return setSettingByKey(db, "AllowIPs", "") + }, +} +var resetDomainCmd = &cobra.Command{ + Use: "domain", + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + if !isRoot() { + fmt.Println(i18n.GetMsgWithMapForCmd("SudoHelper", map[string]interface{}{"cmd": "sudo 1pctl reset domain"})) + return nil + } + db, err := loadDBConn("core.db") + if err != nil { + return err + } + + return setSettingByKey(db, "BindDomain", "") + }, +} + +var resetPasskeyCmd = &cobra.Command{ + Use: "passkey", + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + if !isRoot() { + fmt.Println(i18n.GetMsgWithMapForCmd("SudoHelper", map[string]interface{}{"cmd": "sudo 1pctl reset passkey"})) + return nil + } + db, err := loadDBConn("core.db") + if err != nil { + return err + } + if err := setSettingByKey(db, passkey.PasskeyUserIDSettingKey, ""); err != nil { + return err + } + return setSettingByKey(db, passkey.PasskeyCredentialSettingKey, "") + }, +} + +func loadResetHelper() { + fmt.Println(i18n.GetMsgByKeyForCmd("ResetCommands")) + fmt.Println("\nUsage:\n 1panel reset [command]\n\nAvailable Commands:") + fmt.Println("\n domain " + i18n.GetMsgByKeyForCmd("ResetDomain")) + fmt.Println(" entrance " + i18n.GetMsgByKeyForCmd("ResetEntrance")) + fmt.Println(" https " + i18n.GetMsgByKeyForCmd("ResetHttps")) + fmt.Println(" ips " + i18n.GetMsgByKeyForCmd("ResetIPs")) + fmt.Println(" mfa " + i18n.GetMsgByKeyForCmd("ResetMFA")) + fmt.Println(" passkey " + i18n.GetMsgByKeyForCmd("ResetPasskey")) + fmt.Println("\nFlags:\n -h, --help help for reset") + fmt.Println("\nUse \"1panel reset [command] --help\" for more information about a command.") +} diff --git a/core/cmd/server/cmd/restore.go b/core/cmd/server/cmd/restore.go new file mode 100644 index 0000000..732e7b6 --- /dev/null +++ b/core/cmd/server/cmd/restore.go @@ -0,0 +1,142 @@ +package cmd + +import ( + "fmt" + "os" + "path" + "sort" + "strings" + + "github.com/1Panel-dev/1Panel/core/global" + "github.com/1Panel-dev/1Panel/core/i18n" + cmdUtils "github.com/1Panel-dev/1Panel/core/utils/cmd" + "github.com/1Panel-dev/1Panel/core/utils/common" + "github.com/1Panel-dev/1Panel/core/utils/controller" + "github.com/1Panel-dev/1Panel/core/utils/files" + + "github.com/spf13/cobra" +) + +func init() { + RootCmd.AddCommand(restoreCmd) +} + +var restoreCmd = &cobra.Command{ + Use: "restore", + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + if !isRoot() { + fmt.Println(i18n.GetMsgWithMapForCmd("SudoHelper", map[string]interface{}{"cmd": "sudo 1pctl restore"})) + return nil + } + stdout, err := cmdUtils.RunDefaultWithStdoutBashC("grep '^BASE_DIR=' /usr/local/bin/1pctl | cut -d'=' -f2") + if err != nil { + return fmt.Errorf("handle load `BASE_DIR` failed, err: %v", err) + } + baseDir := strings.ReplaceAll(stdout, "\n", "") + upgradeDir := path.Join(baseDir, "1panel", "tmp", "upgrade") + + tmpPath, err := loadRestorePath(upgradeDir) + if err != nil { + return err + } + if tmpPath == "no such file" { + fmt.Println(i18n.GetMsgByKeyForCmd("RestoreNoSuchFile")) + return nil + } + tmpPath = path.Join(upgradeDir, tmpPath, "original") + + fmt.Println(i18n.GetMsgWithMapForCmd("RestoreStep1", map[string]interface{}{"name": tmpPath})) + if err := files.CopyItem(false, true, path.Join(tmpPath, "1panel-agent"), "/usr/local/bin"); err != nil { + return err + } + if err := files.CopyItem(false, true, path.Join(tmpPath, "1panel-core"), "/usr/local/bin"); err != nil { + return err + } + if err := files.CopyItem(true, true, path.Join(tmpPath, "lang"), "/usr/local/bin"); err != nil { + return err + } + if err := files.CopyItem(false, true, path.Join(tmpPath, "GeoIP.mmdb"), path.Join(baseDir, "1panel/geo")); err != nil { + return err + } + sudo := cmdUtils.SudoHandleCmd() + _, _ = cmdUtils.RunDefaultWithStdoutBashCf("%s chmod 755 /usr/local/bin/1panel-agent /usr/local/bin/1panel-core", sudo) + + fmt.Println(i18n.GetMsgByKeyForCmd("RestoreStep2")) + if err := files.CopyItem(false, true, path.Join(tmpPath, "1pctl"), "/usr/local/bin"); err != nil { + return err + } + _, _ = cmdUtils.RunDefaultWithStdoutBashCf("%s chmod 755 /usr/local/bin/1pctl", sudo) + _, _ = cmdUtils.RunDefaultWithStdoutBashCf("cp -r %s /usr/local/bin", path.Join(tmpPath, "lang")) + geoPath := path.Join(global.CONF.Base.InstallDir, "1panel/geo") + _, _ = cmdUtils.RunDefaultWithStdoutBashCf("mkdir %s && cp %s %s/", geoPath, path.Join(tmpPath, "GeoIP.mmdb"), geoPath) + + fmt.Println(i18n.GetMsgByKeyForCmd("RestoreStep3")) + svcBasePath, _ := controller.GetServicePath("") + svcCoreName, _ := controller.LoadServiceName("1panel-core") + selCoreName, _ := controller.SelectInitScript("1panel-core") + scriptCoreName, _ := controller.GetScriptName("1panel-core") + svcAgentName, _ := controller.LoadServiceName("1panel-agent") + selAgentName, _ := controller.SelectInitScript("1panel-agent") + scriptAgentName, _ := controller.GetScriptName("1panel-agent") + if err := files.CopyItem(false, true, path.Join(tmpPath, svcCoreName), svcBasePath); err != nil { + if err := files.CopyItem(false, true, path.Join(tmpPath, selCoreName), path.Join(svcBasePath, scriptCoreName)); err != nil { + return err + } + } + if err := files.CopyItem(false, true, path.Join(tmpPath, svcAgentName), svcBasePath); err != nil { + if err := files.CopyItem(false, true, path.Join(tmpPath, selAgentName), path.Join(svcBasePath, scriptAgentName)); err != nil { + return err + } + } + fmt.Println(i18n.GetMsgByKeyForCmd("RestoreStep4")) + if _, err := os.Stat(path.Join(tmpPath, "db")); err == nil { + dbPath := path.Join(baseDir, "1panel") + if err := files.CopyItem(true, true, path.Join(tmpPath, "db"), dbPath); err != nil { + global.LOG.Errorf("rollback 1panel db failed, err: %v", err) + } + } + + fmt.Println(i18n.GetMsgByKeyForCmd("RestoreStep5")) + version := loadRollbackVersion(tmpPath) + fmt.Println(i18n.GetMsgWithMapForCmd("RestoreSuccessful", map[string]interface{}{"version": version})) + + controller.RestartPanel(true, true, true) + return nil + }, +} + +func loadRestorePath(upgradeDir string) (string, error) { + if _, err := os.Stat(upgradeDir); err != nil && os.IsNotExist(err) { + return "no such file", nil + } + files, err := os.ReadDir(upgradeDir) + if err != nil { + return "", err + } + var folders []string + for _, file := range files { + if file.IsDir() { + folders = append(folders, file.Name()) + } + } + if len(folders) == 0 { + return "no such file", nil + } + sort.Slice(folders, func(i, j int) bool { + return common.ComparePanelVersion(folders[i], folders[j]) + }) + return folders[0], nil +} + +func loadRollbackVersion(upgradeDir string) string { + stdout, err := cmdUtils.RunDefaultWithStdoutBashCf("grep '^ORIGINAL_VERSION=' %s/1pctl | cut -d'=' -f2", upgradeDir) + if err != nil { + return "-" + } + info := strings.ReplaceAll(stdout, "\n", "") + if len(info) == 0 || info == `""` { + return "-" + } + return info +} diff --git a/core/cmd/server/cmd/root.go b/core/cmd/server/cmd/root.go new file mode 100644 index 0000000..29b6527 --- /dev/null +++ b/core/cmd/server/cmd/root.go @@ -0,0 +1,84 @@ +package cmd + +import ( + "fmt" + "os/user" + "path" + "strings" + "time" + + "github.com/1Panel-dev/1Panel/core/server" + cmdUtils "github.com/1Panel-dev/1Panel/core/utils/cmd" + "github.com/glebarez/sqlite" + "github.com/spf13/cobra" + "gorm.io/gorm" +) + +var language string + +func init() { + RootCmd.PersistentFlags().StringVarP(&language, "language", "l", "en", "Set the language") +} + +var RootCmd = &cobra.Command{ + Use: "1panel", + RunE: func(cmd *cobra.Command, args []string) error { + server.Start() + return nil + }, +} + +type setting struct { + ID uint `gorm:"primarykey;AUTO_INCREMENT" json:"id"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` + Key string `json:"key" gorm:"type:varchar(256);not null;"` + Value string `json:"value" gorm:"type:varchar(256)"` + About string `json:"about" gorm:"type:longText"` +} + +func loadDBConn(dbName string) (*gorm.DB, error) { + stdout, err := cmdUtils.RunDefaultWithStdoutBashC("grep '^BASE_DIR=' /usr/local/bin/1pctl | cut -d'=' -f2") + if err != nil { + return nil, fmt.Errorf("handle load `BASE_DIR` failed, err: %v", err) + } + baseDir := strings.ReplaceAll(stdout, "\n", "") + if len(baseDir) == 0 { + return nil, fmt.Errorf("error `BASE_DIR` find in /usr/local/bin/1pctl \n") + } + if strings.HasSuffix(baseDir, "/") { + baseDir = baseDir[:strings.LastIndex(baseDir, "/")] + } + + db, err := gorm.Open(sqlite.Open(path.Join(baseDir, "1panel/db", dbName)), &gorm.Config{}) + if err != nil { + return nil, fmt.Errorf("init my db conn failed, err: %v \n", err) + } + return db, nil +} + +func getSettingByKey(db *gorm.DB, key string) string { + var setting setting + _ = db.Where("key = ?", key).First(&setting).Error + return setting.Value +} + +type LoginLog struct{} + +func isDefault(db *gorm.DB) bool { + logCount := int64(0) + _ = db.Model(&LoginLog{}).Where("status = ?", "Success").Count(&logCount).Error + return logCount == 0 +} + +func setSettingByKey(db *gorm.DB, key, value string) error { + return db.Model(&setting{}).Where("key = ?", key).Updates(map[string]interface{}{"value": value}).Error +} + +func isRoot() bool { + currentUser, err := user.Current() + if err != nil { + return false + } + return currentUser.Uid == "0" +} diff --git a/core/cmd/server/cmd/update.go b/core/cmd/server/cmd/update.go new file mode 100644 index 0000000..4f7802d --- /dev/null +++ b/core/cmd/server/cmd/update.go @@ -0,0 +1,292 @@ +package cmd + +import ( + "bufio" + "fmt" + "os" + "regexp" + "strconv" + "strings" + "unicode" + + "github.com/1Panel-dev/1Panel/core/constant" + "github.com/1Panel-dev/1Panel/core/global" + "github.com/1Panel-dev/1Panel/core/i18n" + "github.com/1Panel-dev/1Panel/core/utils/cmd" + "github.com/1Panel-dev/1Panel/core/utils/common" + "github.com/1Panel-dev/1Panel/core/utils/encrypt" + "github.com/spf13/cobra" + "golang.org/x/term" +) + +func init() { + updateCmd.SetHelpFunc(func(c *cobra.Command, s []string) { + i18n.UseI18nForCmd(language) + loadUpdateHelper() + }) + + RootCmd.AddCommand(updateCmd) + updateCmd.AddCommand(updateUserName) + updateCmd.AddCommand(updatePassword) + updateCmd.AddCommand(updatePort) + + updateCmd.AddCommand(updateVersion) +} + +var updateCmd = &cobra.Command{ + Use: "update", + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + loadUpdateHelper() + return nil + }, +} + +var updateUserName = &cobra.Command{ + Use: "username", + Short: i18n.GetMsgByKeyForCmd("UpdateUser"), + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + if !isRoot() { + fmt.Println(i18n.GetMsgWithMapForCmd("SudoHelper", map[string]interface{}{"cmd": "sudo 1pctl update username"})) + return nil + } + username() + return nil + }, +} +var updatePassword = &cobra.Command{ + Use: "password", + Short: i18n.GetMsgByKeyForCmd("UpdatePassword"), + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + if !isRoot() { + fmt.Println(i18n.GetMsgWithMapForCmd("SudoHelper", map[string]interface{}{"cmd": "sudo 1pctl update password"})) + return nil + } + password() + return nil + }, +} +var updatePort = &cobra.Command{ + Use: "port", + Short: i18n.GetMsgByKeyForCmd("UpdatePort"), + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + if !isRoot() { + fmt.Println(i18n.GetMsgWithMapForCmd("SudoHelper", map[string]interface{}{"cmd": "sudo 1pctl update port"})) + return nil + } + port() + return nil + }, +} +var updateVersion = &cobra.Command{ + Use: "version", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + if !isRoot() { + fmt.Println(i18n.GetMsgWithMapForCmd("SudoHelper", map[string]interface{}{"cmd": "sudo 1pctl update version"})) + return nil + } + version := args[0] + if len(version) == 0 || !strings.HasPrefix(version, "v2.") { + fmt.Println("err version in param input") + return nil + } + db, err := loadDBConn("core.db") + if err != nil { + fmt.Println(i18n.GetMsgWithMapForCmd("DBConnErr", map[string]interface{}{"err": err.Error()})) + return err + } + if err := setSettingByKey(db, "SystemVersion", version); err != nil { + fmt.Println(i18n.GetMsgWithMapForCmd("UpdateUserErr", map[string]interface{}{"err": err.Error()})) + return err + } + return nil + }, +} + +func username() { + reader := bufio.NewReader(os.Stdin) + fmt.Print(i18n.GetMsgByKeyForCmd("UpdateUser") + ": ") + newUsername, _ := reader.ReadString('\n') + newUsername = strings.Trim(newUsername, "\n") + if len(newUsername) == 0 { + fmt.Println(i18n.GetMsgByKeyForCmd("UpdateUserNull")) + return + } + if strings.Contains(newUsername, " ") { + fmt.Println(i18n.GetMsgByKeyForCmd("UpdateUserBlank")) + return + } + result, err := regexp.MatchString("^[a-zA-Z0-9_\u4e00-\u9fa5]{3,30}$", newUsername) + if !result || err != nil { + fmt.Println(i18n.GetMsgByKeyForCmd("UpdateUserFormat")) + return + } + + db, err := loadDBConn("core.db") + if err != nil { + fmt.Println(i18n.GetMsgWithMapForCmd("DBConnErr", map[string]interface{}{"err": err.Error()})) + return + } + if err := setSettingByKey(db, "UserName", newUsername); err != nil { + fmt.Println(i18n.GetMsgWithMapForCmd("UpdateUserErr", map[string]interface{}{"err": err.Error()})) + return + } + + fmt.Println("\n" + i18n.GetMsgByKeyForCmd("UpdateSuccessful")) + fmt.Println(i18n.GetMsgWithMapForCmd("UpdateUserResult", map[string]interface{}{"name": newUsername})) +} + +func password() { + fmt.Print(i18n.GetMsgByKeyForCmd("UpdatePassword") + ": ") + bytePassword, err := term.ReadPassword(int(os.Stdin.Fd())) + if err != nil { + fmt.Println("\n" + i18n.GetMsgWithMapForCmd("UpdatePasswordRead", map[string]interface{}{"err": err.Error()})) + return + } + newPassword := string(bytePassword) + newPassword = strings.Trim(newPassword, "\n") + + if len(newPassword) == 0 { + fmt.Println("\n", i18n.GetMsgByKeyForCmd("UpdatePasswordNull")) + return + } + if strings.Contains(newPassword, " ") { + fmt.Println("\n" + i18n.GetMsgByKeyForCmd("UpdateUPasswordBlank")) + return + } + db, err := loadDBConn("core.db") + if err != nil { + fmt.Println("\n" + i18n.GetMsgWithMapForCmd("DBConnErr", map[string]interface{}{"err": err.Error()})) + return + } + complexSetting := getSettingByKey(db, "ComplexityVerification") + if complexSetting == constant.StatusEnable { + if isValidPassword("newPassword") { + fmt.Println("\n" + i18n.GetMsgByKeyForCmd("UpdatePasswordFormat")) + return + } + } + if len(newPassword) < 6 { + fmt.Println(i18n.GetMsgByKeyForCmd("UpdatePasswordLen")) + return + } + + fmt.Print("\n" + i18n.GetMsgByKeyForCmd("UpdatePasswordRe")) + byteConfirmPassword, err := term.ReadPassword(int(os.Stdin.Fd())) + if err != nil { + fmt.Println("\n" + i18n.GetMsgWithMapForCmd("UpdatePasswordRead", map[string]interface{}{"err": err.Error()})) + return + } + confirmPassword := string(byteConfirmPassword) + confirmPassword = strings.Trim(confirmPassword, "\n") + + if newPassword != confirmPassword { + fmt.Println("\n", i18n.GetMsgByKeyForCmd("UpdatePasswordSame")) + return + } + + p := "" + encryptSetting := getSettingByKey(db, "EncryptKey") + if len(encryptSetting) == 16 { + global.CONF.Base.EncryptKey = encryptSetting + p, _ = encrypt.StringEncrypt(newPassword) + } else { + p = newPassword + } + if err := setSettingByKey(db, "Password", p); err != nil { + fmt.Println("\n", i18n.GetMsgWithMapForCmd("UpdatePortErr", map[string]interface{}{"err": err.Error()})) + return + } + username := getSettingByKey(db, "UserName") + + fmt.Println("\n" + i18n.GetMsgByKeyForCmd("UpdateSuccessful")) + fmt.Println(i18n.GetMsgWithMapForCmd("UpdateUserResult", map[string]interface{}{"name": username})) + fmt.Println(i18n.GetMsgWithMapForCmd("UpdatePasswordResult", map[string]interface{}{"name": string(newPassword)})) +} + +func port() { + reader := bufio.NewReader(os.Stdin) + fmt.Print(i18n.GetMsgByKeyForCmd("UpdatePort") + ": ") + + newPortStr, _ := reader.ReadString('\n') + newPortStr = strings.Trim(newPortStr, "\n") + newPort, err := strconv.Atoi(strings.TrimSpace(newPortStr)) + if err != nil || newPort < 1 || newPort > 65535 { + fmt.Println(i18n.GetMsgByKeyForCmd("UpdatePortFormat")) + return + } + if common.ScanPort(newPort) { + fmt.Println(i18n.GetMsgByKeyForCmd("UpdatePortUsed")) + return + } + db, err := loadDBConn("core.db") + if err != nil { + fmt.Println(i18n.GetMsgWithMapForCmd("DBConnErr", map[string]interface{}{"err": err.Error()})) + return + } + if err := setSettingByKey(db, "ServerPort", newPortStr); err != nil { + fmt.Println(i18n.GetMsgWithMapForCmd("UpdatePortErr", map[string]interface{}{"err": err.Error()})) + return + } + + fmt.Println("\n" + i18n.GetMsgByKeyForCmd("UpdateSuccessful")) + fmt.Println(i18n.GetMsgWithMapForCmd("UpdatePortResult", map[string]interface{}{"name": newPortStr})) + + std, err := cmd.RunDefaultWithStdoutBashC("1pctl restart core") + if err != nil { + fmt.Println(std) + } +} +func isValidPassword(password string) bool { + numCount := 0 + alphaCount := 0 + specialCount := 0 + + for _, char := range password { + switch { + case unicode.IsDigit(char): + numCount++ + case unicode.IsLetter(char): + alphaCount++ + case isSpecialChar(char): + specialCount++ + } + } + + if len(password) < 8 && len(password) > 30 { + return false + } + if (numCount == 0 && alphaCount == 0) || (alphaCount == 0 && specialCount == 0) || (numCount == 0 && specialCount == 0) { + return false + } + return true +} + +func isSpecialChar(char rune) bool { + specialChars := "!@#$%*_,.?" + return unicode.IsPunct(char) && contains(specialChars, char) +} + +func contains(specialChars string, char rune) bool { + for _, c := range specialChars { + if c == char { + return true + } + } + return false +} + +func loadUpdateHelper() { + fmt.Println(i18n.GetMsgByKeyForCmd("UpdateCommands")) + fmt.Println("\nUsage:\n 1panel update [command]\n\nAvailable Commands:") + fmt.Println("\n password " + i18n.GetMsgByKeyForCmd("UpdatePassword")) + fmt.Println(" port " + i18n.GetMsgByKeyForCmd("UpdatePort")) + fmt.Println(" username " + i18n.GetMsgByKeyForCmd("UpdateUser")) + fmt.Println("\nFlags:\n -h, --help help for update") + fmt.Println("\nUse \"1panel update [command] --help\" for more information about a command.") +} diff --git a/core/cmd/server/cmd/user-info.go b/core/cmd/server/cmd/user-info.go new file mode 100644 index 0000000..1bc92f7 --- /dev/null +++ b/core/cmd/server/cmd/user-info.go @@ -0,0 +1,66 @@ +package cmd + +import ( + "fmt" + + "github.com/1Panel-dev/1Panel/core/constant" + "github.com/1Panel-dev/1Panel/core/global" + "github.com/1Panel-dev/1Panel/core/i18n" + "github.com/1Panel-dev/1Panel/core/utils/encrypt" + "github.com/spf13/cobra" +) + +func init() { + RootCmd.AddCommand(userinfoCmd) +} + +var userinfoCmd = &cobra.Command{ + Use: "user-info", + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + if !isRoot() { + fmt.Println(i18n.GetMsgWithMapForCmd("SudoHelper", map[string]interface{}{"cmd": "sudo 1pctl user-info"})) + return nil + } + db, err := loadDBConn("core.db") + if err != nil { + return fmt.Errorf("init my db conn failed, err: %v \n", err) + } + agentDB, err := loadDBConn("agent.db") + if err != nil { + return fmt.Errorf("init my agent db conn failed, err: %v \n", err) + } + user := getSettingByKey(db, "UserName") + pass := "********" + if isDefault(db) { + encryptSetting := getSettingByKey(db, "EncryptKey") + pass = getSettingByKey(db, "Password") + if len(encryptSetting) == 16 { + global.CONF.Base.EncryptKey = encryptSetting + pass, _ = encrypt.StringDecrypt(pass) + } + } + port := getSettingByKey(db, "ServerPort") + ssl := getSettingByKey(db, "SSL") + entrance := getSettingByKey(db, "SecurityEntrance") + address := getSettingByKey(agentDB, "SystemIP") + domain := getSettingByKey(db, "BindDomain") + if len(domain) != 0 { + address = domain + } + + protocol := "http" + if ssl == constant.StatusEnable { + protocol = "https" + } + if address == "" { + address = "$LOCAL_IP" + } + + fmt.Println(i18n.GetMsgByKeyForCmd("UserInfoAddr") + fmt.Sprintf("%s://%s:%s/%s ", protocol, address, port, entrance)) + fmt.Println(i18n.GetMsgWithMapForCmd("UpdateUserResult", map[string]interface{}{"name": user})) + fmt.Println(i18n.GetMsgWithMapForCmd("UpdatePasswordResult", map[string]interface{}{"name": pass})) + fmt.Println(i18n.GetMsgByKeyForCmd("UserInfoPassHelp") + "1pctl update password") + return nil + }, +} diff --git a/core/cmd/server/cmd/version.go b/core/cmd/server/cmd/version.go new file mode 100644 index 0000000..99737dc --- /dev/null +++ b/core/cmd/server/cmd/version.go @@ -0,0 +1,41 @@ +package cmd + +import ( + "fmt" + + "github.com/1Panel-dev/1Panel/core/cmd/server/conf" + "github.com/1Panel-dev/1Panel/core/global" + "github.com/1Panel-dev/1Panel/core/i18n" + "gopkg.in/yaml.v3" + + "github.com/spf13/cobra" +) + +func init() { + RootCmd.AddCommand(versionCmd) +} + +var versionCmd = &cobra.Command{ + Use: "version", + RunE: func(cmd *cobra.Command, args []string) error { + i18n.UseI18nForCmd(language) + if !isRoot() { + fmt.Println(i18n.GetMsgWithMapForCmd("SudoHelper", map[string]interface{}{"cmd": "sudo 1pctl version"})) + return nil + } + db, err := loadDBConn("core.db") + if err != nil { + return err + } + version := getSettingByKey(db, "SystemVersion") + + fmt.Println(i18n.GetMsgByKeyForCmd("SystemVersion") + version) + config := global.ServerConfig{} + if err := yaml.Unmarshal(conf.AppYaml, &config); err != nil { + return fmt.Errorf("unmarshal conf.App.Yaml failed, err: %v", err) + } else { + fmt.Println(i18n.GetMsgByKeyForCmd("SystemMode") + config.Base.Mode) + } + return nil + }, +} diff --git a/core/cmd/server/conf/app.yaml b/core/cmd/server/conf/app.yaml new file mode 100644 index 0000000..2427911 --- /dev/null +++ b/core/cmd/server/conf/app.yaml @@ -0,0 +1,23 @@ +base: + install_dir: /opt + mode: dev + is_demo: false + is_intl: false + is_offline: false + is_fxplay: false + port: 9999 + username: admin + password: admin123 + version: v2.0.0 + +remote_url: + app_repo: https://apps-assets.fit2cloud.com + repo_url: https://resource.fit2cloud.com/1panel/package/v2 + resource_url: https://resource.fit2cloud.com/1panel/resource/v2 + +log: + level: debug + time_zone: Asia/Shanghai + log_name: 1Panel-Core + log_suffix: .log + max_backup: 10 \ No newline at end of file diff --git a/core/cmd/server/conf/conf.go b/core/cmd/server/conf/conf.go new file mode 100644 index 0000000..6654d8b --- /dev/null +++ b/core/cmd/server/conf/conf.go @@ -0,0 +1,6 @@ +package conf + +import _ "embed" + +//go:embed app.yaml +var AppYaml []byte diff --git a/core/cmd/server/docs/docs.go b/core/cmd/server/docs/docs.go new file mode 100644 index 0000000..984dfaa --- /dev/null +++ b/core/cmd/server/docs/docs.go @@ -0,0 +1,34810 @@ +package docs + +import "github.com/swaggo/swag" + +const docTemplate = `{ + "swagger": "2.0", + "info": { + "contact": {}, + "description": "Top-Rated Web-based Linux Server Management Tool", + "license": { + "name": "GPL-3.0", + "url": "https://www.gnu.org/licenses/gpl-3.0.html" + }, + "termsOfService": "http://swagger.io/terms/", + "title": "1Panel", + "version": "2.0" + }, + "host": "", + "basePath": "/api/v2", + "paths": { + "/ai/domain/bind": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OllamaBindDomain" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Bind domain", + "tags": [ + "AI" + ] + } + }, + "/ai/domain/get": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OllamaBindDomainReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.OllamaBindDomainRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get bind domain", + "tags": [ + "AI" + ] + } + }, + "/ai/gpu/load": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load gpu / xpu info", + "tags": [ + "AI" + ] + } + }, + "/ai/mcp/domain/bind": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.McpBindDomain" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Bind Domain for mcp server", + "tags": [ + "McpServer" + ] + } + }, + "/ai/mcp/domain/get": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.McpBindDomainRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get bin Domain for mcp server", + "tags": [ + "McpServer" + ] + } + }, + "/ai/mcp/domain/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.McpBindDomainUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update bind Domain for mcp server", + "tags": [ + "McpServer" + ] + } + }, + "/ai/mcp/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.McpServerSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.McpServersRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List mcp servers", + "tags": [ + "McpServer" + ] + } + }, + "/ai/mcp/server": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.McpServerCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create mcp server", + "tags": [ + "McpServer" + ] + } + }, + "/ai/mcp/server/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.McpServerDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete mcp server", + "tags": [ + "McpServer" + ] + } + }, + "/ai/mcp/server/op": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.McpServerOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate mcp server", + "tags": [ + "McpServer" + ] + } + }, + "/ai/mcp/server/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.McpServerUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update mcp server", + "tags": [ + "McpServer" + ] + } + }, + "/ai/ollama/close": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OllamaModelName" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Close Ollama model conn", + "tags": [ + "AI" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "close conn for Ollama model [name]", + "formatZH": "关闭 Ollama 模型连接 [name]", + "paramKeys": [] + } + } + }, + "/ai/ollama/model": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OllamaModelName" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create Ollama model", + "tags": [ + "AI" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "add Ollama model [name]", + "formatZH": "添加 Ollama 模型 [name]", + "paramKeys": [] + } + } + }, + "/ai/ollama/model/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ForceDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete Ollama model", + "tags": [ + "AI" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "ollama_models", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "name", + "output_value": "names" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "remove Ollama model [names]", + "formatZH": "删除 Ollama 模型 [names]", + "paramKeys": [] + } + } + }, + "/ai/ollama/model/load": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OllamaModelName" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page Ollama models", + "tags": [ + "AI" + ] + } + }, + "/ai/ollama/model/recreate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OllamaModelName" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Rereate Ollama model", + "tags": [ + "AI" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "re-add Ollama model [name]", + "formatZH": "添加 Ollama 模型重试 [name]", + "paramKeys": [] + } + } + }, + "/ai/ollama/model/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page Ollama models", + "tags": [ + "AI" + ] + } + }, + "/ai/ollama/model/sync": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.OllamaModelDropList" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Sync Ollama model list", + "tags": [ + "AI" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "sync Ollama model list", + "formatZH": "同步 Ollama 模型列表", + "paramKeys": [] + } + } + }, + "/apps/:key": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "app key", + "in": "path", + "name": "key", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.AppDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search app by key", + "tags": [ + "App" + ] + } + }, + "/apps/checkupdate": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.AppUpdateRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get app list update", + "tags": [ + "App" + ] + } + }, + "/apps/detail/:appId/:version/:type": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "app id", + "in": "path", + "name": "appId", + "required": true, + "type": "integer" + }, + { + "description": "app 版本", + "in": "path", + "name": "version", + "required": true, + "type": "string" + }, + { + "description": "app 类型", + "in": "path", + "name": "version", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.AppDetailDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search app detail by appid", + "tags": [ + "App" + ] + } + }, + "/apps/details/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "id", + "in": "path", + "name": "appId", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.AppDetailDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get app detail by id", + "tags": [ + "App" + ] + } + }, + "/apps/icon/:appId": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "app id", + "in": "path", + "name": "appId", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "app icon", + "schema": { + "type": "file" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get app icon by app_id", + "tags": [ + "App" + ] + } + }, + "/apps/ignored/cancel": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.ReqWithID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Cancel Ignore Upgrade App", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Cancel ignore application upgrade", + "formatZH": "取消忽略应用升级", + "paramKeys": [] + } + } + }, + "/apps/ignored/detail": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/model.AppIgnoreUpgrade" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List Upgrade Ignored App", + "tags": [ + "App" + ] + } + }, + "/apps/install": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.AppInstallCreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/model.AppInstall" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Install app", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Install app [name]", + "formatZH": "安装应用 [name]", + "paramKeys": [] + } + } + }, + "/apps/installed/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.AppInstalledInfo" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.AppInstalledCheck" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check app installed", + "tags": [ + "App" + ] + } + }, + "/apps/installed/conf": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithNameAndType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search default config by key", + "tags": [ + "App" + ] + } + }, + "/apps/installed/config/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.AppConfigUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update app config", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "installID", + "webUI" + ], + "formatEN": "Application config update [installID]", + "formatZH": "应用配置更新 [installID]", + "paramKeys": [] + } + } + }, + "/apps/installed/conninfo": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithNameAndType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.DatabaseConn" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search app password by key", + "tags": [ + "App" + ] + } + }, + "/apps/installed/delete/check/:appInstallId": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "App install id", + "in": "path", + "name": "appInstallId", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.AppResource" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check before delete", + "tags": [ + "App" + ] + } + }, + "/apps/installed/ignore": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.AppIgnoreUpgradeReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Ignore Upgrade App", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Ignore application upgrade", + "formatZH": "忽略应用升级", + "paramKeys": [] + } + } + }, + "/apps/installed/info/:appInstallId": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "App install id", + "in": "path", + "name": "appInstallId", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.AppInstallInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get app install info", + "tags": [ + "App" + ] + } + }, + "/apps/installed/list": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.AppInstallInfo" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List app installed", + "tags": [ + "App" + ] + } + }, + "/apps/installed/loadport": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithNameAndType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "integer" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search app port by key", + "tags": [ + "App" + ] + } + }, + "/apps/installed/op": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.AppInstalledOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate installed app", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "app_installs", + "input_column": "id", + "input_value": "installId", + "isList": false, + "output_column": "app_id", + "output_value": "appId" + }, + { + "db": "app_installs", + "input_column": "id", + "input_value": "installId", + "isList": false, + "output_column": "name", + "output_value": "appName" + }, + { + "db": "apps", + "input_column": "id", + "input_value": "appId", + "isList": false, + "output_column": "key", + "output_value": "appKey" + } + ], + "bodyKeys": [ + "installId", + "operate" + ], + "formatEN": "[operate] App [appKey][appName]", + "formatZH": "[operate] 应用 [appKey][appName]", + "paramKeys": [] + } + } + }, + "/apps/installed/params/:appInstallId": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "appInstallId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.AppConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search params by appInstallId", + "tags": [ + "App" + ] + } + }, + "/apps/installed/params/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.AppInstalledUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change app params", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "installId" + ], + "formatEN": "Application param update [installId]", + "formatZH": "应用参数修改 [installId]", + "paramKeys": [] + } + } + }, + "/apps/installed/port/change": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PortUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change app port", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "name", + "port" + ], + "formatEN": "Application port update [key]-[name] =\u003e [port]", + "formatZH": "应用端口修改 [key]-[name] =\u003e [port]", + "paramKeys": [] + } + } + }, + "/apps/installed/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.AppInstalledSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page app installed", + "tags": [ + "App" + ] + } + }, + "/apps/installed/sync": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Sync app installed", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Sync the list of installed apps", + "formatZH": "同步已安装应用列表", + "paramKeys": [] + } + } + }, + "/apps/installed/update/versions": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "appInstallId", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.AppVersion" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search app update version by install id", + "tags": [ + "App" + ] + } + }, + "/apps/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.AppSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.AppRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List apps", + "tags": [ + "App" + ] + } + }, + "/apps/services/:key": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "key", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.AppService" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search app service by key", + "tags": [ + "App" + ] + } + }, + "/apps/sync/local": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Sync local app list", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "App store synchronization", + "formatZH": "应用商店同步", + "paramKeys": [] + } + } + }, + "/apps/sync/remote": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Sync remote app list", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "App store synchronization", + "formatZH": "应用商店同步", + "paramKeys": [] + } + } + }, + "/backups": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BackupOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create backup account", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type" + ], + "formatEN": "create backup account [type]", + "formatZH": "创建备份账号 [type]", + "paramKeys": [] + } + } + }, + "/backups/backup": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CommonBackup" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Backup system data", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type", + "name", + "detailName" + ], + "formatEN": "backup [type] data [name][detailName]", + "formatZH": "备份 [type] 数据 [name][detailName]", + "paramKeys": [] + } + } + }, + "/backups/buckets": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ForBuckets" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "object" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List buckets", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BackupOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check backup account", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete backup account", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "backup_accounts", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "type", + "output_value": "types" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "delete backup account [types]", + "formatZH": "删除备份账号 [types]", + "paramKeys": [] + } + } + }, + "/backups/local": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "get local backup dir", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/options": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.BackupOption" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load backup account options", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/record/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BatchDeleteReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete backup record", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "backup_records", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "file_name", + "output_value": "files" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete backup records [files]", + "formatZH": "删除备份记录 [files]", + "paramKeys": [] + } + } + }, + "/backups/record/description/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UpdateDescription" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update backup record description", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/record/download": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DownloadRecord" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Download backup record", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "source", + "fileName" + ], + "formatEN": "download backup records [source][fileName]", + "formatZH": "下载备份记录 [source][fileName]", + "paramKeys": [] + } + } + }, + "/backups/record/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.RecordSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page backup records", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/record/search/bycronjob": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.RecordSearchByCronjob" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page backup records by cronjob", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/record/size": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchForSize" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.RecordFileSize" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load backup record size", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/recover": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CommonRecover" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Recover system data", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type", + "name", + "detailName", + "file" + ], + "formatEN": "recover [type] data [name][detailName] from [file]", + "formatZH": "从 [file] 恢复 [type] 数据 [name][detailName]", + "paramKeys": [] + } + } + }, + "/backups/recover/byupload": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CommonRecover" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Recover system data by upload", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type", + "name", + "detailName", + "file" + ], + "formatEN": "recover [type] data [name][detailName] from [file]", + "formatZH": "从 [file] 恢复 [type] 数据 [name][detailName]", + "paramKeys": [] + } + } + }, + "/backups/refresh/token": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BackupOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Refresh token", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchPageWithType" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search backup accounts with page", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/search/files": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List files from backup accounts", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BackupOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update backup account", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type" + ], + "formatEN": "update backup account [types]", + "formatZH": "更新备份账号 [types]", + "paramKeys": [] + } + } + }, + "/backups/upload": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UploadForRecover" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Upload file for recover", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "filePath" + ], + "formatEN": "upload backup file [filePath]", + "formatZH": "上传备份文件 [filePath]", + "paramKeys": [] + } + } + }, + "/containers": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ContainerOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create container", + "tags": [ + "Container" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "image" + ], + "formatEN": "create container [name][image]", + "formatZH": "创建容器 [name][image]", + "paramKeys": [] + } + } + }, + "/containers/clean/log": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clean container log", + "tags": [ + "Container" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "clean container [name] logs", + "formatZH": "清理容器 [name] 日志", + "paramKeys": [] + } + } + }, + "/containers/command": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ContainerCreateByCommand" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create container by command", + "tags": [ + "Container" + ] + } + }, + "/containers/commit": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ContainerCommit" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Commit Container", + "tags": [ + "Container" + ] + } + }, + "/containers/compose": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ComposeCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create compose", + "tags": [ + "Container Compose" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "create compose [name]", + "formatZH": "创建 compose [name]", + "paramKeys": [] + } + } + }, + "/containers/compose/clean/log": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ComposeLogClean" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clean compose log", + "tags": [ + "Container" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "clean compose [name] logs", + "formatZH": "清理容器编排 [name] 日志", + "paramKeys": [] + } + } + }, + "/containers/compose/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ComposeOperation" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate compose", + "tags": [ + "Container Compose" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "operation" + ], + "formatEN": "compose [operation] [name]", + "formatZH": "compose [operation] [name]", + "paramKeys": [] + } + } + }, + "/containers/compose/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page composes", + "tags": [ + "Container Compose" + ] + } + }, + "/containers/compose/test": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ComposeCreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "boolean" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Test compose", + "tags": [ + "Container Compose" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "check compose [name]", + "formatZH": "检测 compose [name] 格式", + "paramKeys": [] + } + } + }, + "/containers/compose/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ComposeUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update compose", + "tags": [ + "Container Compose" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "update compose information [name]", + "formatZH": "更新 compose [name]", + "paramKeys": [] + } + } + }, + "/containers/daemonjson": { + "get": { + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.DaemonJsonConf" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load docker daemon.json", + "tags": [ + "Container Docker" + ] + } + }, + "/containers/daemonjson/file": { + "get": { + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load docker daemon.json", + "tags": [ + "Container Docker" + ] + } + }, + "/containers/daemonjson/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SettingUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update docker daemon.json", + "tags": [ + "Container Docker" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "Updated configuration [key]", + "formatZH": "更新配置 [key]", + "paramKeys": [] + } + } + }, + "/containers/daemonjson/update/byfile": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DaemonJsonUpdateByFile" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update docker daemon.json by upload file", + "tags": [ + "Container Docker" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Updated configuration file", + "formatZH": "更新配置文件", + "paramKeys": [] + } + } + }, + "/containers/docker/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DockerOperation" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate docker", + "tags": [ + "Container Docker" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operation" + ], + "formatEN": "[operation] docker service", + "formatZH": "docker 服务 [operation]", + "paramKeys": [] + } + } + }, + "/containers/docker/status": { + "get": { + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load docker status", + "tags": [ + "Container Docker" + ] + } + }, + "/containers/image": { + "get": { + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.Options" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "load images options", + "tags": [ + "Container Image" + ] + } + }, + "/containers/image/all": { + "get": { + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.ImageInfo" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List all images", + "tags": [ + "Container Image" + ] + } + }, + "/containers/image/build": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ImageBuild" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Build image", + "tags": [ + "Container Image" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "build image [name]", + "formatZH": "构建镜像 [name]", + "paramKeys": [] + } + } + }, + "/containers/image/load": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ImageLoad" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load image", + "tags": [ + "Container Image" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "load image from [path]", + "formatZH": "从 [path] 加载镜像", + "paramKeys": [] + } + } + }, + "/containers/image/pull": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ImagePull" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Pull image", + "tags": [ + "Container Image" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "image_repos", + "input_column": "id", + "input_value": "repoID", + "isList": false, + "output_column": "name", + "output_value": "reponame" + } + ], + "bodyKeys": [ + "repoID", + "imageName" + ], + "formatEN": "image pull [reponame][imageName]", + "formatZH": "镜像拉取 [reponame][imageName]", + "paramKeys": [] + } + } + }, + "/containers/image/push": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ImagePush" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Push image", + "tags": [ + "Container Image" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "image_repos", + "input_column": "id", + "input_value": "repoID", + "isList": false, + "output_column": "name", + "output_value": "reponame" + } + ], + "bodyKeys": [ + "repoID", + "tagName", + "name" + ], + "formatEN": "push [tagName] to [reponame][name]", + "formatZH": "[tagName] 推送到 [reponame][name]", + "paramKeys": [] + } + } + }, + "/containers/image/remove": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BatchDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete image", + "tags": [ + "Container Image" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "names" + ], + "formatEN": "remove image [names]", + "formatZH": "移除镜像 [names]", + "paramKeys": [] + } + } + }, + "/containers/image/save": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ImageSave" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Save image", + "tags": [ + "Container Image" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "tagName", + "path", + "name" + ], + "formatEN": "save [tagName] as [path]/[name]", + "formatZH": "保留 [tagName] 为 [path]/[name]", + "paramKeys": [] + } + } + }, + "/containers/image/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageImage" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page images", + "tags": [ + "Container Image" + ] + } + }, + "/containers/image/tag": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ImageTag" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Tag image", + "tags": [ + "Container Image" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "image_repos", + "input_column": "id", + "input_value": "repoID", + "isList": false, + "output_column": "name", + "output_value": "reponame" + } + ], + "bodyKeys": [ + "repoID", + "targetName" + ], + "formatEN": "tag image [reponame][targetName]", + "formatZH": "tag 镜像 [reponame][targetName]", + "paramKeys": [] + } + } + }, + "/containers/info": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.ContainerOperate" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load container info", + "tags": [ + "Container" + ] + } + }, + "/containers/inspect": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.InspectReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Container inspect", + "tags": [ + "Container" + ] + } + }, + "/containers/ipv6option/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.LogOption" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update docker daemon.json ipv6 option", + "tags": [ + "Container Docker" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Updated the ipv6 option", + "formatZH": "更新 ipv6 配置", + "paramKeys": [] + } + } + }, + "/containers/item/stats": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.ContainerItemStats" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load container stats size" + } + }, + "/containers/limit": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.ResourceLimit" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load container limits" + } + }, + "/containers/list": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.ContainerOptions" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List containers", + "tags": [ + "Container" + ] + } + }, + "/containers/list/byimage": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.ContainerOptions" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List containers by image", + "tags": [ + "Container" + ] + } + }, + "/containers/list/stats": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.ContainerListStats" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load container stats" + } + }, + "/containers/logoption/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.LogOption" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update docker daemon.json log option", + "tags": [ + "Container Docker" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Updated the log option", + "formatZH": "更新日志配置", + "paramKeys": [] + } + } + }, + "/containers/network": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.Options" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List networks", + "tags": [ + "Container Network" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.NetworkCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create network", + "tags": [ + "Container Network" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "create container network [name]", + "formatZH": "创建容器网络 name", + "paramKeys": [] + } + } + }, + "/containers/network/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BatchDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete network", + "tags": [ + "Container Network" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "names" + ], + "formatEN": "delete container network [names]", + "formatZH": "删除容器网络 [names]", + "paramKeys": [] + } + } + }, + "/containers/network/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page networks", + "tags": [ + "Container Network" + ] + } + }, + "/containers/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ContainerOperation" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate Container", + "tags": [ + "Container" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "names", + "operation" + ], + "formatEN": "container [operation] [names]", + "formatZH": "容器 [names] 执行 [operation]", + "paramKeys": [] + } + } + }, + "/containers/prune": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ContainerPrune" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clean container", + "tags": [ + "Container" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "pruneType" + ], + "formatEN": "clean container [pruneType]", + "formatZH": "清理容器 [pruneType]", + "paramKeys": [] + } + } + }, + "/containers/rename": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ContainerRename" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Rename Container", + "tags": [ + "Container" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "newName" + ], + "formatEN": "rename container [name] =\u003e [newName]", + "formatZH": "容器重命名 [name] =\u003e [newName]", + "paramKeys": [] + } + } + }, + "/containers/repo": { + "get": { + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.ImageRepoOption" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List image repos", + "tags": [ + "Container Image-repo" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ImageRepoDelete" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create image repo", + "tags": [ + "Container Image-repo" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "create image repo [name]", + "formatZH": "创建镜像仓库 [name]", + "paramKeys": [] + } + } + }, + "/containers/repo/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete image repo", + "tags": [ + "Container Image-repo" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "image_repos", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "delete image repo [name]", + "formatZH": "删除镜像仓库 [name]", + "paramKeys": [] + } + } + }, + "/containers/repo/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page image repos", + "tags": [ + "Container Image-repo" + ] + } + }, + "/containers/repo/status": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load repo status", + "tags": [ + "Container Image-repo" + ] + } + }, + "/containers/repo/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ImageRepoUpdate" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update image repo", + "tags": [ + "Container Image-repo" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "image_repos", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "update image repo information [name]", + "formatZH": "更新镜像仓库 [name]", + "paramKeys": [] + } + } + }, + "/containers/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageContainer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page containers", + "tags": [ + "Container" + ] + } + }, + "/containers/search/log": { + "get": { + "parameters": [ + { + "description": "容器名称", + "in": "query", + "name": "container", + "type": "string" + }, + { + "description": "时间筛选", + "in": "query", + "name": "since", + "type": "string" + }, + { + "description": "是否追踪", + "in": "query", + "name": "follow", + "type": "string" + }, + { + "description": "显示行号", + "in": "query", + "name": "tail", + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Container logs", + "tags": [ + "Container" + ] + } + }, + "/containers/stats/:id": { + "get": { + "parameters": [ + { + "description": "容器id", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.ContainerStats" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Container stats", + "tags": [ + "Container" + ] + } + }, + "/containers/status": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.ContainerStatus" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load containers status", + "tags": [ + "Container" + ] + } + }, + "/containers/template": { + "get": { + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.ComposeTemplateInfo" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List compose templates", + "tags": [ + "Container Compose-template" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ComposeTemplateCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create compose template", + "tags": [ + "Container Compose-template" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "create compose template [name]", + "formatZH": "创建 compose 模版 [name]", + "paramKeys": [] + } + } + }, + "/containers/template/batch": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ComposeTemplateBatch" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Bacth compose template", + "tags": [ + "Container Compose-template" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "batch import compose templates", + "formatZH": "批量导入编排模版", + "paramKeys": [] + } + } + }, + "/containers/template/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BatchDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete compose template", + "tags": [ + "Container Compose-template" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "compose_templates", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "name", + "output_value": "names" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete compose template [names]", + "formatZH": "删除 compose 模版 [names]", + "paramKeys": [] + } + } + }, + "/containers/template/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page compose templates", + "tags": [ + "Container Compose-template" + ] + } + }, + "/containers/template/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ComposeTemplateUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update compose template", + "tags": [ + "Container Compose-template" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "compose_templates", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "update compose template information [name]", + "formatZH": "更新 compose 模版 [name]", + "paramKeys": [] + } + } + }, + "/containers/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ContainerOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update container", + "tags": [ + "Container" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "image" + ], + "formatEN": "update container [name][image]", + "formatZH": "更新容器 [name][image]", + "paramKeys": [] + } + } + }, + "/containers/upgrade": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ContainerUpgrade" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Upgrade container", + "tags": [ + "Container" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "names", + "image" + ], + "formatEN": "upgrade container image [names][image]", + "formatZH": "更新容器镜像 [names][image]", + "paramKeys": [] + } + } + }, + "/containers/users": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load container users", + "tags": [ + "Container" + ] + } + }, + "/containers/volume": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.Options" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List volumes", + "tags": [ + "Container Volume" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.VolumeCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create volume", + "tags": [ + "Container Volume" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "create container volume [name]", + "formatZH": "创建容器存储卷 [name]", + "paramKeys": [] + } + } + }, + "/containers/volume/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BatchDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete volume", + "tags": [ + "Container Volume" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "names" + ], + "formatEN": "delete container volume [names]", + "formatZH": "删除容器存储卷 [names]", + "paramKeys": [] + } + } + }, + "/containers/volume/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page volumes", + "tags": [ + "Container Volume" + ] + } + }, + "/core/auth/captcha": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.CaptchaResponse" + } + } + }, + "summary": "Load captcha", + "tags": [ + "Auth" + ] + } + }, + "/core/auth/login": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "安全入口 base64 加密串", + "in": "header", + "name": "EntranceCode", + "required": true, + "type": "string" + }, + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Login" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.UserLoginInfo" + } + } + }, + "summary": "User login", + "tags": [ + "Auth" + ] + } + }, + "/core/auth/logout": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "User logout", + "tags": [ + "Auth" + ] + } + }, + "/core/auth/mfalogin": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MFALogin" + } + } + ], + "responses": { + "200": { + "description": "OK", + "headers": { + "EntranceCode": { + "description": "安全入口", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/dto.UserLoginInfo" + } + } + }, + "summary": "User login with mfa", + "tags": [ + "Auth" + ] + } + }, + "/core/auth/setting": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.SystemSetting" + } + } + }, + "summary": "Get Setting For Login", + "tags": [ + "Auth" + ] + } + }, + "/core/backups": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BackupOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create backup account", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type" + ], + "formatEN": "create backup account [type]", + "formatZH": "创建备份账号 [type]", + "paramKeys": [] + } + } + }, + "/core/backups/client/:clientType": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.BackupClientInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load backup account base info", + "tags": [ + "Backup Account" + ] + } + }, + "/core/backups/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByName" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete backup account", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "delete backup account [name]", + "formatZH": "删除备份账号 [name]", + "paramKeys": [] + } + } + }, + "/core/backups/refresh/token": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByName" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Refresh token", + "tags": [ + "Backup Account" + ] + } + }, + "/core/backups/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BackupOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update backup account", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type" + ], + "formatEN": "update backup account [types]", + "formatZH": "更新备份账号 [types]", + "paramKeys": [] + } + } + }, + "/core/commands": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CommandOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create command", + "tags": [ + "Command" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "command" + ], + "formatEN": "create quick command [name][command]", + "formatZH": "创建快捷命令 [name][command]", + "paramKeys": [] + } + } + }, + "/core/commands/command": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.CommandInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List commands", + "tags": [ + "Command" + ] + } + }, + "/core/commands/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByIDs" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete command", + "tags": [ + "Command" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "commands", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "name", + "output_value": "names" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete quick command [names]", + "formatZH": "删除快捷命令 [names]", + "paramKeys": [] + } + } + }, + "/core/commands/export": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Export command", + "tags": [ + "Command" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "export quick commands", + "formatZH": "导出快速命令", + "paramKeys": [] + } + } + }, + "/core/commands/import": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Import command", + "tags": [ + "Command" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "import quick commands", + "formatZH": "导入快速命令", + "paramKeys": [] + } + } + }, + "/core/commands/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page commands", + "tags": [ + "Command" + ] + } + }, + "/core/commands/tree": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.CommandTree" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Tree commands", + "tags": [ + "Command" + ] + } + }, + "/core/commands/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CommandOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update command", + "tags": [ + "Command" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "update quick command [name]", + "formatZH": "更新快捷命令 [name]", + "paramKeys": [] + } + } + }, + "/core/groups": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.GroupCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create group", + "tags": [ + "System Group" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "type" + ], + "formatEN": "create group [name][type]", + "formatZH": "创建组 [name][type]", + "paramKeys": [] + } + } + }, + "/core/groups/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete group", + "tags": [ + "System Group" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "groups", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + }, + { + "db": "groups", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "type", + "output_value": "type" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "delete group [type][name]", + "formatZH": "删除组 [type][name]", + "paramKeys": [] + } + } + }, + "/core/groups/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.GroupSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.OperateByType" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List groups", + "tags": [ + "System Group" + ] + } + }, + "/core/groups/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.GroupUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update group", + "tags": [ + "System Group" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "type" + ], + "formatEN": "update group [name][type]", + "formatZH": "更新组 [name][type]", + "paramKeys": [] + } + } + }, + "/core/hosts": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.HostOperate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.HostInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create host", + "tags": [ + "Host" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "addr" + ], + "formatEN": "create host [name][addr]", + "formatZH": "创建主机 [name][addr]", + "paramKeys": [] + } + } + }, + "/core/hosts/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByIDs" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete host", + "tags": [ + "Host" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "hosts", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "addr", + "output_value": "addrs" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete host [addrs]", + "formatZH": "删除主机 [addrs]", + "paramKeys": [] + } + } + }, + "/core/hosts/info": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.HostInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get host info", + "tags": [ + "Host" + ] + } + }, + "/core/hosts/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchPageWithGroup" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page host", + "tags": [ + "Host" + ] + } + }, + "/core/hosts/test/byid/:id": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "boolean" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Test host conn by host id", + "tags": [ + "Host" + ] + } + }, + "/core/hosts/test/byinfo": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.HostConnTest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "boolean" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Test host conn by info", + "tags": [ + "Host" + ] + } + }, + "/core/hosts/tree": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchForTree" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.HostTree" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load host tree", + "tags": [ + "Host" + ] + } + }, + "/core/hosts/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.HostOperate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.HostInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update host", + "tags": [ + "Host" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "addr" + ], + "formatEN": "update host [name][addr]", + "formatZH": "更新主机信息 [name][addr]", + "paramKeys": [] + } + } + }, + "/core/hosts/update/group": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangeHostGroup" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update host group", + "tags": [ + "Host" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "hosts", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "addr", + "output_value": "addr" + } + ], + "bodyKeys": [ + "id", + "group" + ], + "formatEN": "change host [addr] group =\u003e [group]", + "formatZH": "切换主机[addr]分组 =\u003e [group]", + "paramKeys": [] + } + } + }, + "/core/logs/clean": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CleanLog" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clean operation logs", + "tags": [ + "Logs" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "logType" + ], + "formatEN": "Clean the [logType] log information", + "formatZH": "清空 [logType] 日志信息", + "paramKeys": [] + } + } + }, + "/core/logs/login": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchLgLogWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page login logs", + "tags": [ + "Logs" + ] + } + }, + "/core/logs/operation": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchOpLogWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page operation logs", + "tags": [ + "Logs" + ] + } + }, + "/core/script": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ScriptOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Add script", + "tags": [ + "ScriptLibrary" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "add script [name]", + "formatZH": "添加脚本库脚本 [name]", + "paramKeys": [] + } + } + }, + "/core/script/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByIDs" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete script", + "tags": [ + "ScriptLibrary" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "script_librarys", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "name", + "output_value": "names" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete script [names]", + "formatZH": "删除脚本库脚本 [names]", + "paramKeys": [] + } + } + }, + "/core/script/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchPageWithGroup" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page script", + "tags": [ + "ScriptLibrary" + ] + } + }, + "/core/script/sync": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByTaskID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Sync script from remote", + "tags": [ + "ScriptLibrary" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "sync scripts", + "formatZH": "同步脚本库脚本", + "paramKeys": [] + } + } + }, + "/core/script/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ScriptOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update script", + "tags": [ + "ScriptLibrary" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "cronjobs", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "update script [name]", + "formatZH": "更新脚本库脚本 [name]", + "paramKeys": [] + } + } + }, + "/core/settings/api/config/generate/key": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "generate api key", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "generate api key", + "formatZH": "生成 API 接口密钥", + "paramKeys": [] + } + } + }, + "/core/settings/api/config/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ApiInterfaceConfig" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update api config", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "ipWhiteList" + ], + "formatEN": "update api config =\u003e IP White List: [ipWhiteList]", + "formatZH": "更新 API 接口配置 =\u003e IP 白名单: [ipWhiteList]", + "paramKeys": [] + } + } + }, + "/core/settings/apps/store/config": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.AppstoreConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get appstore config", + "tags": [ + "App" + ] + } + }, + "/core/settings/apps/store/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.AppstoreUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update appstore config", + "tags": [ + "App" + ] + } + }, + "/core/settings/bind/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BindInfo" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update system bind info", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "ipv6", + "bindAddress" + ], + "formatEN": "update system bind info =\u003e ipv6: [ipv6], 监听 IP: [bindAddress]", + "formatZH": "修改系统监听信息 =\u003e ipv6: [ipv6], 监听 IP: [bindAddress]", + "paramKeys": [] + } + } + }, + "/core/settings/by": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system setting by key", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/expired/handle": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PasswordUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Reset system password expired", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "reset an expired Password", + "formatZH": "重置过期密码", + "paramKeys": [] + } + } + }, + "/core/settings/interface": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system address", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/menu/default": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Default menu", + "tags": [ + "Menu Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Init menu.", + "formatZH": "初始化菜单", + "paramKeys": [] + } + } + }, + "/core/settings/menu/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SettingUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update system setting", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Hide advanced feature menu.", + "formatZH": "隐藏高级功能菜单", + "paramKeys": [] + } + } + }, + "/core/settings/mfa": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MfaCredential" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/mfa.Otp" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load mfa info", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/mfa/bind": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MfaCredential" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Bind mfa", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "bind mfa", + "formatZH": "mfa 绑定", + "paramKeys": [] + } + } + }, + "/core/settings/password/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PasswordUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update system password", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "update system password", + "formatZH": "修改系统密码", + "paramKeys": [] + } + } + }, + "/core/settings/port/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PortUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update system port", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "serverPort" + ], + "formatEN": "update system port =\u003e [serverPort]", + "formatZH": "修改系统端口 =\u003e [serverPort]", + "paramKeys": [] + } + } + }, + "/core/settings/proxy/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ProxyUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update proxy setting", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "proxyUrl", + "proxyPort" + ], + "formatEN": "set proxy [proxyPort]:[proxyPort].", + "formatZH": "服务器代理配置 [proxyPort]:[proxyPort]", + "paramKeys": [] + } + } + }, + "/core/settings/search": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.SettingInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system setting info", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/search/available": { + "get": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system available status", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/ssl/download": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Download system cert", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/ssl/info": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.SSLInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system cert info", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/ssl/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SSLUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update system ssl", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "ssl" + ], + "formatEN": "update system ssl =\u003e [ssl]", + "formatZH": "修改系统 ssl =\u003e [ssl]", + "paramKeys": [] + } + } + }, + "/core/settings/terminal/search": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.TerminalInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system terminal setting info", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/terminal/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.TerminalInfo" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update system terminal setting", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "update system terminal setting", + "formatZH": "修改系统终端配置", + "paramKeys": [] + } + } + }, + "/core/settings/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SettingUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update system setting", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "update system setting [key] =\u003e [value]", + "formatZH": "修改系统配置 [key] =\u003e [value]", + "paramKeys": [] + } + } + }, + "/core/settings/upgrade": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.UpgradeInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load upgrade info", + "tags": [ + "System Setting" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Upgrade" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Upgrade", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "version" + ], + "formatEN": "upgrade system =\u003e [version]", + "formatZH": "更新系统 =\u003e [version]", + "paramKeys": [] + } + } + }, + "/core/settings/upgrade/notes": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Upgrade" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load release notes by version", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/upgrade/releases": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.ReleasesNotes" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load upgrade notes", + "tags": [ + "System Setting" + ] + } + }, + "/cronjobs": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CronjobOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create cronjob", + "tags": [ + "Cronjob" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type", + "name" + ], + "formatEN": "create cronjob [type][name]", + "formatZH": "创建计划任务 [type][name]", + "paramKeys": [] + } + } + }, + "/cronjobs/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CronjobBatchDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete cronjob", + "tags": [ + "Cronjob" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "cronjobs", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "name", + "output_value": "names" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete cronjob [names]", + "formatZH": "删除计划任务 [names]", + "paramKeys": [] + } + } + }, + "/cronjobs/export": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByIDs" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Export cronjob list", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/group/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangeGroup" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update cronjob group", + "tags": [ + "Cronjob" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "cronjobs", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "update cronjob group [name]", + "formatZH": "更新计划任务分组 [name]", + "paramKeys": [] + } + } + }, + "/cronjobs/handle": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Handle cronjob once", + "tags": [ + "Cronjob" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "cronjobs", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "manually execute the cronjob [name]", + "formatZH": "手动执行计划任务 [name]", + "paramKeys": [] + } + } + }, + "/cronjobs/import": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CronjobImport" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Import cronjob list", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/load/info": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load cronjob info", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/next": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CronjobSpec" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load cronjob spec time", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/records/clean": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CronjobClean" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clean job records", + "tags": [ + "Cronjob" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "cronjobs", + "input_column": "id", + "input_value": "cronjobID", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "cronjobID" + ], + "formatEN": "clean cronjob [name] records", + "formatZH": "清空计划任务记录 [name]", + "paramKeys": [] + } + } + }, + "/cronjobs/records/log": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load Cronjob record log", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/script/options": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.ScriptOptions" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load script options", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageCronjob" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page cronjobs", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/search/records": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchRecord" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page job records", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/status": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CronjobUpdateStatus" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update cronjob status", + "tags": [ + "Cronjob" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "cronjobs", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id", + "status" + ], + "formatEN": "change the status of cronjob [name] to [status].", + "formatZH": "修改计划任务 [name] 状态为 [status]", + "paramKeys": [] + } + } + }, + "/cronjobs/stop": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Handle stop job", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CronjobOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update cronjob", + "tags": [ + "Cronjob" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "cronjobs", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "update cronjob [name]", + "formatZH": "更新计划任务 [name]", + "paramKeys": [] + } + } + }, + "/dashboard/app/launcher": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.AppLauncher" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load app launcher", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/app/launcher/option": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchByFilter" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.LauncherOption" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load app launcher options", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/app/launcher/show": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SettingUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update app Launcher", + "tags": [ + "Dashboard" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "app launcher [key] =\u003e show: [value]", + "formatZH": "首页应用 [key] =\u003e 显示:[value]", + "paramKeys": [] + } + } + }, + "/dashboard/base/:ioOption/:netOption": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "ioOption", + "required": true, + "type": "string" + }, + { + "description": "request", + "in": "path", + "name": "netOption", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.DashboardBase" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load dashboard base info", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/base/os": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.OsInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load os info", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/current/:ioOption/:netOption": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "ioOption", + "required": true, + "type": "string" + }, + { + "description": "request", + "in": "path", + "name": "netOption", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.DashboardCurrent" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load dashboard current info", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/current/node": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.NodeCurrent" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load dashboard current info for node", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/current/top/cpu": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.Process" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load top cpu processes", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/current/top/mem": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.Process" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load top memory processes", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/quick/change": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangeQuicks" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update quick jump", + "tags": [ + "Dashboard" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "change quick jump", + "formatZH": "切换快速跳转", + "paramKeys": [] + } + } + }, + "/dashboard/quick/option": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.QuickJump" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load quick jump options", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/system/restart/:operation": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "operation", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "System restart", + "tags": [ + "Dashboard" + ] + } + }, + "/databases": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MysqlDBCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create mysql database", + "tags": [ + "Database Mysql" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "create mysql database [name]", + "formatZH": "创建 mysql 数据库 [name]", + "paramKeys": [] + } + } + }, + "/databases/bind": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BindUser" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Bind user of mysql database", + "tags": [ + "Database Mysql" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "database", + "username" + ], + "formatEN": "bind mysql database [database] [username]", + "formatZH": "绑定 mysql 数据库名 [database] [username]", + "paramKeys": [] + } + } + }, + "/databases/change/access": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangeDBInfo" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change mysql access", + "tags": [ + "Database Mysql" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "database_mysqls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update database [name] access", + "formatZH": "更新数据库 [name] 访问权限", + "paramKeys": [] + } + } + }, + "/databases/change/password": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangeDBInfo" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change mysql password", + "tags": [ + "Database Mysql" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "database_mysqls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update database [name] password", + "formatZH": "更新数据库 [name] 密码", + "paramKeys": [] + } + } + }, + "/databases/common/info": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithNameAndType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.DBBaseInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load base info", + "tags": [ + "Database Common" + ] + } + }, + "/databases/common/load/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithNameAndType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load Database conf", + "tags": [ + "Database Common" + ] + } + }, + "/databases/common/update/conf": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DBConfUpdateByFile" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update conf by upload file", + "tags": [ + "Database Common" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type", + "database" + ], + "formatEN": "update the [type] [database] database configuration information", + "formatZH": "更新 [type] 数据库 [database] 配置信息", + "paramKeys": [] + } + } + }, + "/databases/db": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DatabaseCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create database", + "tags": [ + "Database" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "type" + ], + "formatEN": "create database [name][type]", + "formatZH": "创建远程数据库 [name][type]", + "paramKeys": [] + } + } + }, + "/databases/db/:name": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.DatabaseInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get databases", + "tags": [ + "Database" + ] + } + }, + "/databases/db/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DatabaseCreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "boolean" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check database", + "tags": [ + "Database" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "type" + ], + "formatEN": "check if database [name][type] is connectable", + "formatZH": "检测远程数据库 [name][type] 连接性", + "paramKeys": [] + } + } + }, + "/databases/db/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DatabaseDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete database", + "tags": [ + "Database" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "databases", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "name", + "output_value": "names" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete database [names]", + "formatZH": "删除远程数据库 [names]", + "paramKeys": [] + } + } + }, + "/databases/db/del/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check before delete remote database", + "tags": [ + "Database" + ] + } + }, + "/databases/db/item/:type": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.DatabaseItem" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List databases", + "tags": [ + "Database" + ] + } + }, + "/databases/db/list/:type": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.DatabaseOption" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List databases", + "tags": [ + "Database" + ] + } + }, + "/databases/db/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DatabaseSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page databases", + "tags": [ + "Database" + ] + } + }, + "/databases/db/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DatabaseUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update database", + "tags": [ + "Database" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "update database [name]", + "formatZH": "更新远程数据库 [name]", + "paramKeys": [] + } + } + }, + "/databases/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MysqlDBDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete mysql database", + "tags": [ + "Database Mysql" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "database_mysqls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "delete mysql database [name]", + "formatZH": "删除 mysql 数据库 [name]", + "paramKeys": [] + } + } + }, + "/databases/del/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MysqlDBDeleteCheck" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check before delete mysql database", + "tags": [ + "Database Mysql" + ] + } + }, + "/databases/description/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UpdateDescription" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update mysql database description", + "tags": [ + "Database Mysql" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "database_mysqls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id", + "description" + ], + "formatEN": "The description of the mysql database [name] is modified =\u003e [description]", + "formatZH": "mysql 数据库 [name] 描述信息修改 [description]", + "paramKeys": [] + } + } + }, + "/databases/format/options": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.MysqlFormatCollationOption" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List mysql database format collation options", + "tags": [ + "Database Mysql" + ] + } + }, + "/databases/load": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MysqlLoadDB" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load mysql database from remote", + "tags": [ + "Database Mysql" + ] + } + }, + "/databases/pg": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PostgresqlDBCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create postgresql database", + "tags": [ + "Database PostgreSQL" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "create postgresql database [name]", + "formatZH": "创建 postgresql 数据库 [name]", + "paramKeys": [] + } + } + }, + "/databases/pg/:database/load": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PostgresqlLoadDB" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load postgresql database from remote", + "tags": [ + "Database PostgreSQL" + ] + } + }, + "/databases/pg/bind": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PostgresqlBindUser" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Bind postgresql user", + "tags": [ + "Database PostgreSQL" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "username" + ], + "formatEN": "bind postgresql database [name] user [username]", + "formatZH": "绑定 postgresql 数据库 [name] 用户 [username]", + "paramKeys": [] + } + } + }, + "/databases/pg/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PostgresqlDBDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete postgresql database", + "tags": [ + "Database PostgreSQL" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "database_postgresqls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "delete postgresql database [name]", + "formatZH": "删除 postgresql 数据库 [name]", + "paramKeys": [] + } + } + }, + "/databases/pg/del/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PostgresqlDBDeleteCheck" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check before delete postgresql database", + "tags": [ + "Database PostgreSQL" + ] + } + }, + "/databases/pg/description": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UpdateDescription" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update postgresql database description", + "tags": [ + "Database PostgreSQL" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "database_postgresqls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id", + "description" + ], + "formatEN": "The description of the postgresql database [name] is modified =\u003e [description]", + "formatZH": "postgresql 数据库 [name] 描述信息修改 [description]", + "paramKeys": [] + } + } + }, + "/databases/pg/password": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangeDBInfo" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change postgresql password", + "tags": [ + "Database PostgreSQL" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "database_postgresqls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update database [name] password", + "formatZH": "更新数据库 [name] 密码", + "paramKeys": [] + } + } + }, + "/databases/pg/privileges": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangeDBInfo" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change postgresql privileges", + "tags": [ + "Database PostgreSQL" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "database", + "username" + ], + "formatEN": "Update [user] privileges of database [database]", + "formatZH": "更新数据库 [database] 用户 [username] 权限", + "paramKeys": [] + } + } + }, + "/databases/pg/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PostgresqlDBSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page postgresql databases", + "tags": [ + "Database PostgreSQL" + ] + } + }, + "/databases/redis/conf": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.LoadRedisStatus" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.RedisConf" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load redis conf", + "tags": [ + "Database Redis" + ] + } + }, + "/databases/redis/conf/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.RedisConfUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update redis conf", + "tags": [ + "Database Redis" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "update the redis database configuration information", + "formatZH": "更新 redis 数据库配置信息", + "paramKeys": [] + } + } + }, + "/databases/redis/install/cli": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Install redis-cli", + "tags": [ + "Database Redis" + ] + } + }, + "/databases/redis/password": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangeRedisPass" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change redis password", + "tags": [ + "Database Redis" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "change the password of the redis database", + "formatZH": "修改 redis 数据库密码", + "paramKeys": [] + } + } + }, + "/databases/redis/persistence/conf": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.LoadRedisStatus" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.RedisPersistence" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load redis persistence conf", + "tags": [ + "Database Redis" + ] + } + }, + "/databases/redis/persistence/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.RedisConfPersistenceUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update redis persistence conf", + "tags": [ + "Database Redis" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "redis database persistence configuration update", + "formatZH": "redis 数据库持久化配置更新", + "paramKeys": [] + } + } + }, + "/databases/redis/status": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.LoadRedisStatus" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.RedisStatus" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load redis status info", + "tags": [ + "Database Redis" + ] + } + }, + "/databases/remote": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithNameAndType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "boolean" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load mysql remote access", + "tags": [ + "Database Mysql" + ] + } + }, + "/databases/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MysqlDBSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page mysql databases", + "tags": [ + "Database Mysql" + ] + } + }, + "/databases/status": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithNameAndType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.MysqlStatus" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load mysql status info", + "tags": [ + "Database Mysql" + ] + } + }, + "/databases/variables": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithNameAndType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.MysqlVariables" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load mysql variables info", + "tags": [ + "Database Mysql" + ] + } + }, + "/databases/variables/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MysqlVariablesUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update mysql variables", + "tags": [ + "Database Mysql" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "adjust mysql database performance parameters", + "formatZH": "调整 mysql 数据库性能参数", + "paramKeys": [] + } + } + }, + "/files": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "Create dir or file [path]", + "formatZH": "创建文件/文件夹 [path]", + "paramKeys": [] + } + } + }, + "/files/batch/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FilePathsCheck" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.ExistFileInfo" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Batch check file exist", + "tags": [ + "File" + ] + } + }, + "/files/batch/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileBatchDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Batch delete file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "paths" + ], + "formatEN": "Batch delete dir or file [paths]", + "formatZH": "批量删除文件/文件夹 [paths]", + "paramKeys": [] + } + } + }, + "/files/batch/role": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileRoleReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Batch change file mode and owner", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "paths", + "mode", + "user", + "group" + ], + "formatEN": "Batch change file mode and owner [paths] =\u003e [mode]/[user]/[group]", + "formatZH": "批量修改文件权限和用户/组 [paths] =\u003e [mode]/[user]/[group]", + "paramKeys": [] + } + } + }, + "/files/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FilePathCheck" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "boolean" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check file exist", + "tags": [ + "File" + ] + } + }, + "/files/chunkdownload": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileDownload" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Chunk Download file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Download file [name]", + "formatZH": "下载文件 [name]", + "paramKeys": [] + } + } + }, + "/files/chunkupload": { + "post": { + "parameters": [ + { + "description": "request", + "in": "formData", + "name": "file", + "required": true, + "type": "file" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "ChunkUpload file", + "tags": [ + "File" + ] + } + }, + "/files/compress": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileCompress" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Compress file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Compress file [name]", + "formatZH": "压缩文件 [name]", + "paramKeys": [] + } + } + }, + "/files/content": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileContentReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.FileInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load file content", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "Load file content [path]", + "formatZH": "获取文件内容 [path]", + "paramKeys": [] + } + } + }, + "/files/convert": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileConvert" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Convert file", + "tags": [ + "File" + ] + } + }, + "/files/convert/log": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageInfo" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Convert file", + "tags": [ + "File" + ] + } + }, + "/files/decompress": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileDeCompress" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Decompress file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "Decompress file [path]", + "formatZH": "解压 [path]", + "paramKeys": [] + } + } + }, + "/files/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "Delete dir or file [path]", + "formatZH": "删除文件/文件夹 [path]", + "paramKeys": [] + } + } + }, + "/files/depth/size": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.DirSizeReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.DepthDirSizeRes" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Multi file size", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "Multi file size [path]", + "formatZH": "获取目录及其第一层子目录文件夹大小 [path]", + "paramKeys": [] + } + } + }, + "/files/download": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Download file", + "tags": [ + "File" + ] + } + }, + "/files/favorite": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FavoriteCreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/model.Favorite" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create favorite", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "收藏文件/文件夹 [path]", + "formatZH": "收藏文件/文件夹 [path]", + "paramKeys": [] + } + } + }, + "/files/favorite/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FavoriteDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete favorite", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "favorites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "path", + "output_value": "path" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "delete avorite [path]", + "formatZH": "删除收藏 [path]", + "paramKeys": [] + } + } + }, + "/files/favorite/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageInfo" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List favorites", + "tags": [ + "File" + ] + } + }, + "/files/mode": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change file mode", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path", + "mode" + ], + "formatEN": "Change mode [paths] =\u003e [mode]", + "formatZH": "修改权限 [paths] =\u003e [mode]", + "paramKeys": [] + } + } + }, + "/files/mount": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.DiskInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "system mount", + "tags": [ + "File" + ] + } + }, + "/files/move": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileMove" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Move file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "oldPaths", + "newPath" + ], + "formatEN": "Move [oldPaths] =\u003e [newPath]", + "formatZH": "移动文件 [oldPaths] =\u003e [newPath]", + "paramKeys": [] + } + } + }, + "/files/owner": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileRoleUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change file owner", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path", + "user", + "group" + ], + "formatEN": "Change owner [paths] =\u003e [user]/[group]", + "formatZH": "修改用户/组 [paths] =\u003e [user]/[group]", + "paramKeys": [] + } + } + }, + "/files/preview": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileContentReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.FileInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Preview file content", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "Preview file content [path]", + "formatZH": "预览文件内容 [path]", + "paramKeys": [] + } + } + }, + "/files/read": { + "post": { + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileReadByLineReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.FileLineContent" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Read file by Line", + "tags": [ + "File" + ] + } + }, + "/files/recycle/clear": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clear RecycleBin files", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "清空回收站", + "formatZH": "清空回收站", + "paramKeys": [] + } + } + }, + "/files/recycle/reduce": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.RecycleBinReduce" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Reduce RecycleBin files", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Reduce RecycleBin file [name]", + "formatZH": "还原回收站文件 [name]", + "paramKeys": [] + } + } + }, + "/files/recycle/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageInfo" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List RecycleBin files", + "tags": [ + "File" + ] + } + }, + "/files/recycle/status": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get RecycleBin status", + "tags": [ + "File" + ] + } + }, + "/files/rename": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileRename" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change file name", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "oldName", + "newName" + ], + "formatEN": "Rename [oldName] =\u003e [newName]", + "formatZH": "重命名 [oldName] =\u003e [newName]", + "paramKeys": [] + } + } + }, + "/files/save": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileEdit" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update file content", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "Update file content [path]", + "formatZH": "更新文件内容 [path]", + "paramKeys": [] + } + } + }, + "/files/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileOption" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.FileInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List files", + "tags": [ + "File" + ] + } + }, + "/files/size": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.DirSizeReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.DirSizeRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load file size", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "Load file size [path]", + "formatZH": "获取文件夹大小 [path]", + "paramKeys": [] + } + } + }, + "/files/tree": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileOption" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.FileTree" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load files tree", + "tags": [ + "File" + ] + } + }, + "/files/upload": { + "post": { + "parameters": [ + { + "description": "request", + "in": "formData", + "name": "file", + "required": true, + "type": "file" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Upload file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path", + "file" + ], + "formatEN": "Upload file [path]/[file]", + "formatZH": "上传文件 [path]/[file]", + "paramKeys": [] + } + } + }, + "/files/upload/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.SearchUploadWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page file", + "tags": [ + "File" + ] + } + }, + "/files/user/group": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.UserGroupResponse" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "system user and group", + "tags": [ + "File" + ] + } + }, + "/files/wget": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileWget" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.FileWgetRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Wget file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "url", + "path", + "name" + ], + "formatEN": "Download url =\u003e [path]/[name]", + "formatZH": "下载 url =\u003e [path]/[name]", + "paramKeys": [] + } + } + }, + "/groups": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.GroupCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create group", + "tags": [ + "System Group" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "type" + ], + "formatEN": "create group [name][type]", + "formatZH": "创建组 [name][type]", + "paramKeys": [] + } + } + }, + "/groups/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete group", + "tags": [ + "System Group" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "groups", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + }, + { + "db": "groups", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "type", + "output_value": "type" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "delete group [type][name]", + "formatZH": "删除组 [type][name]", + "paramKeys": [] + } + } + }, + "/groups/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.GroupSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.OperateByType" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List groups", + "tags": [ + "System Group" + ] + } + }, + "/groups/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.GroupUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update group", + "tags": [ + "System Group" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "type" + ], + "formatEN": "update group [name][type]", + "formatZH": "更新组 [name][type]", + "paramKeys": [] + } + } + }, + "/hosts/components/{name}": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "Component name to check (e.g., rsync, docker)", + "in": "path", + "name": "name", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.ComponentInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check if a system component exists", + "tags": [ + "Host" + ] + } + }, + "/hosts/disks": { + "get": { + "description": "Get information about all disks including partitioned and unpartitioned disks", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.CompleteDiskInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get complete disk information", + "tags": [ + "Disk Management" + ] + } + }, + "/hosts/disks/mount": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Mount partition to specified mount point", + "parameters": [ + { + "description": "mount request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.DiskMountRequest" + } + } + ], + "responses": { + "200": { + "description": "Disk mounted successfully", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Mount disk", + "tags": [ + "Disk Management" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "device", + "mountPoint" + ], + "formatEN": "Mount disk [device] to [mountPoint]", + "formatZH": "挂载磁盘 [device] 到 [mountPoint]", + "paramKeys": [] + } + } + }, + "/hosts/disks/partition": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Create partition and format disk with specified filesystem", + "parameters": [ + { + "description": "partition request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.DiskPartitionRequest" + } + } + ], + "responses": { + "200": { + "description": "Partition created successfully", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Partition disk", + "tags": [ + "Disk Management" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "device", + "filesystem", + "mountPoint" + ], + "formatEN": "Partition disk [device] with filesystem [filesystem], mount point [mountPoint]", + "formatZH": "对磁盘 [device] 进行分区,文件系统 [filesystem],挂载点 [mountPoint]", + "paramKeys": [] + } + } + }, + "/hosts/disks/unmount": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Unmount partition from mount point", + "parameters": [ + { + "description": "unmount request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.DiskUnmountRequest" + } + } + ], + "responses": { + "200": { + "description": "Disk unmounted successfully", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Unmount disk", + "tags": [ + "Disk Management" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "device", + "mountPoint" + ], + "formatEN": "Unmount disk [device] from [mountPoint]", + "formatZH": "卸载磁盘 [device] 从 [mountPoint]", + "paramKeys": [] + } + } + }, + "/hosts/firewall/base": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.FirewallBaseInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load firewall base info", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/firewall/batch": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BatchRuleOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Batch operate rule", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/firewall/filter/chain/status": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "load chain status with name", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/firewall/filter/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.IptablesOp" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Apply/Unload/Init iptables filter", + "tags": [ + "Firewall" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operate" + ], + "formatEN": "[operate] iptables filter firewall", + "formatZH": "[operate] iptables filter 防火墙", + "paramKeys": [] + } + } + }, + "/hosts/firewall/filter/rule/batch": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.IptablesBatchOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Batch operate iptables filter rules", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/firewall/filter/rule/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.IptablesRuleOp" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate iptables filter rule", + "tags": [ + "Firewall" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operation", + "chain" + ], + "formatEN": "[operation] filter rule to [chain]", + "formatZH": "[operation] filter规则到 [chain]", + "paramKeys": [] + } + } + }, + "/hosts/firewall/filter/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchPageWithType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "search iptables filter rules", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/firewall/forward": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ForwardRuleOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate forward rule", + "tags": [ + "Firewall" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "update port forward rules", + "formatZH": "更新端口转发规则", + "paramKeys": [] + } + } + }, + "/hosts/firewall/ip": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.AddrRuleOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate Ip rule", + "tags": [ + "Firewall" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "strategy", + "address" + ], + "formatEN": "create address rules [strategy][address]", + "formatZH": "添加 ip 规则 [strategy] [address]", + "paramKeys": [] + } + } + }, + "/hosts/firewall/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.FirewallOperation" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate firewall", + "tags": [ + "Firewall" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operation" + ], + "formatEN": "[operation] firewall", + "formatZH": "[operation] 防火墙", + "paramKeys": [] + } + } + }, + "/hosts/firewall/port": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PortRuleOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create group", + "tags": [ + "Firewall" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "port", + "strategy" + ], + "formatEN": "create port rules [strategy][port]", + "formatZH": "添加端口规则 [strategy] [port]", + "paramKeys": [] + } + } + }, + "/hosts/firewall/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.RuleSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page firewall rules", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/firewall/update/addr": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.AddrRuleUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update Ip rule", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/firewall/update/description": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UpdateFirewallDescription" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update rule description", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/firewall/update/port": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PortRuleUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update port rule", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/monitor/clean": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clean monitor data", + "tags": [ + "Monitor" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "clean monitor datas", + "formatZH": "清空监控数据", + "paramKeys": [] + } + } + }, + "/hosts/monitor/gpu/search": { + "post": { + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MonitorGPUSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.MonitorGPUData" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load monitor data", + "tags": [ + "Monitor" + ] + } + }, + "/hosts/monitor/search": { + "post": { + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MonitorSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.MonitorData" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load monitor data", + "tags": [ + "Monitor" + ] + } + }, + "/hosts/monitor/setting": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.MonitorSetting" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load monitor setting", + "tags": [ + "Monitor" + ] + } + }, + "/hosts/monitor/setting/update": { + "post": { + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MonitorSettingUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update monitor setting", + "tags": [ + "Monitor" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "update default monitor [name]-[value]", + "formatZH": "修改默认监控网卡 [name]-[value]", + "paramKeys": [] + } + } + }, + "/hosts/ssh/cert": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.RootCertOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Generate host SSH secret", + "tags": [ + "SSH" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "generate SSH secret", + "formatZH": "生成 SSH 密钥 ", + "paramKeys": [] + } + } + }, + "/hosts/ssh/cert/delete": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ForceDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete host SSH secret", + "tags": [ + "SSH" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "delete SSH secret", + "formatZH": "删除 SSH 密钥 ", + "paramKeys": [] + } + } + }, + "/hosts/ssh/cert/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load host SSH secret", + "tags": [ + "SSH" + ] + } + }, + "/hosts/ssh/cert/sync": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Sycn host SSH secret", + "tags": [ + "SSH" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "sync SSH secret", + "formatZH": "同步 SSH 密钥 ", + "paramKeys": [] + } + } + }, + "/hosts/ssh/cert/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.RootCertOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update host SSH secret", + "tags": [ + "SSH" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "generate SSH secret", + "formatZH": "生成 SSH 密钥 ", + "paramKeys": [] + } + } + }, + "/hosts/ssh/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load host SSH conf", + "tags": [ + "SSH" + ] + } + }, + "/hosts/ssh/file/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SSHConf" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update host SSH setting by file", + "tags": [ + "SSH" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key" + ], + "formatEN": "update SSH conf [key]", + "formatZH": "修改 SSH 配置文件 [key]", + "paramKeys": [] + } + } + }, + "/hosts/ssh/log": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchSSHLog" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load host SSH logs", + "tags": [ + "SSH" + ] + } + }, + "/hosts/ssh/log/export": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchSSHLog" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Export host SSH logs", + "tags": [ + "SSH" + ] + } + }, + "/hosts/ssh/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Operate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate SSH", + "tags": [ + "SSH" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operation" + ], + "formatEN": "[operation] SSH", + "formatZH": "[operation] SSH ", + "paramKeys": [] + } + } + }, + "/hosts/ssh/search": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.SSHInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load host SSH setting info", + "tags": [ + "SSH" + ] + } + }, + "/hosts/ssh/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SSHUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update host SSH setting", + "tags": [ + "SSH" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "newValue" + ], + "formatEN": "update SSH setting [key] =\u003e [newValue]", + "formatZH": "修改 SSH 配置 [key] =\u003e [newValue]", + "paramKeys": [] + } + } + }, + "/hosts/tool": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.HostToolReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.HostToolRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get tool status", + "tags": [ + "Host tool" + ] + } + }, + "/hosts/tool/config": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.HostToolConfig" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.HostToolConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get tool config", + "tags": [ + "Host tool" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operate" + ], + "formatEN": "[operate] tool config", + "formatZH": "[operate] 主机工具配置文件 ", + "paramKeys": [] + } + } + }, + "/hosts/tool/init": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.HostToolCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create Host tool Config", + "tags": [ + "Host tool" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type" + ], + "formatEN": "create [type] config", + "formatZH": "创建 [type] 配置", + "paramKeys": [] + } + } + }, + "/hosts/tool/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.HostToolReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate tool", + "tags": [ + "Host tool" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operate", + "type" + ], + "formatEN": "[operate] [type]", + "formatZH": "[operate] [type] ", + "paramKeys": [] + } + } + }, + "/hosts/tool/supervisor/process": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.SupervisorProcessConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get Supervisor process config", + "tags": [ + "Host tool" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.SupervisorProcessConfig" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create Supervisor process", + "tags": [ + "Host tool" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operate" + ], + "formatEN": "[operate] process", + "formatZH": "[operate] 守护进程 ", + "paramKeys": [] + } + } + }, + "/hosts/tool/supervisor/process/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.SupervisorProcessFileReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get Supervisor process config file", + "tags": [ + "Host tool" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operate" + ], + "formatEN": "[operate] Supervisor Process Config file", + "formatZH": "[operate] Supervisor 进程文件 ", + "paramKeys": [] + } + } + }, + "/logs/system/files": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system log files", + "tags": [ + "Logs" + ] + } + }, + "/logs/tasks/executing/count": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "integer" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get the number of executing tasks", + "tags": [ + "TaskLog" + ] + } + }, + "/logs/tasks/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchTaskLogReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page task logs", + "tags": [ + "TaskLog" + ] + } + }, + "/openresty": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxFile" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load OpenResty conf", + "tags": [ + "OpenResty" + ] + } + }, + "/openresty/build": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxBuildReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Build OpenResty", + "tags": [ + "OpenResty" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Build OpenResty", + "formatZH": "构建 OpenResty", + "paramKeys": [] + } + } + }, + "/openresty/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxConfigFileUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update OpenResty conf by upload file", + "tags": [ + "OpenResty" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Update nginx conf", + "formatZH": "更新 nginx 配置", + "paramKeys": [] + } + } + }, + "/openresty/https": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxConfigRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get default HTTPs status", + "tags": [ + "OpenResty" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxDefaultHTTPSUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate default HTTPs", + "tags": [ + "OpenResty" + ] + } + }, + "/openresty/modules": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxBuildConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get OpenResty modules", + "tags": [ + "OpenResty" + ] + } + }, + "/openresty/modules/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxModuleUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update OpenResty module", + "tags": [ + "OpenResty" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Update OpenResty module", + "formatZH": "更新 OpenResty 模块", + "paramKeys": [] + } + } + }, + "/openresty/scope": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxScopeReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.NginxParam" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load partial OpenResty conf", + "tags": [ + "OpenResty" + ] + } + }, + "/openresty/status": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxStatus" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load OpenResty status info", + "tags": [ + "OpenResty" + ] + } + }, + "/openresty/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxConfigUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update OpenResty conf", + "tags": [ + "OpenResty" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteId", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteId" + ], + "formatEN": "Update nginx conf [domain]", + "formatZH": "更新 nginx 配置 [domain]", + "paramKeys": [] + } + } + }, + "/process/stop": { + "post": { + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.ProcessReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Stop Process", + "tags": [ + "Process" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "PID" + ], + "formatEN": "结束进程 [PID]", + "formatZH": "结束进程 [PID]", + "paramKeys": [] + } + } + }, + "/process/{pid}": { + "get": { + "parameters": [ + { + "description": "PID", + "in": "path", + "name": "pid", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get Process Info By PID", + "tags": [ + "Process" + ] + } + }, + "/runtimes": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.RuntimeCreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/model.Runtime" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create runtime", + "tags": [ + "Runtime" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Create runtime [name]", + "formatZH": "创建运行环境 [name]", + "paramKeys": [] + } + } + }, + "/runtimes/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.RuntimeDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get runtime", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.RuntimeDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete runtime", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "id" + ], + "formatEN": "Delete runtime [name]", + "formatZH": "删除运行环境 [name]", + "paramKeys": [] + } + } + }, + "/runtimes/installed/delete/check/:id": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.AppResource" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete runtime", + "tags": [ + "Website" + ] + } + }, + "/runtimes/node/modules": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NodeModuleReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.NodeModule" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get Node modules", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/node/modules/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NodeModuleReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate Node modules", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/node/package": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NodePackageReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.PackageScripts" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get Node package scripts", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.RuntimeOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate runtime", + "tags": [ + "Runtime" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "id" + ], + "formatEN": "Operate runtime [name]", + "formatZH": "操作运行环境 [name]", + "paramKeys": [] + } + } + }, + "/runtimes/php/:id/extensions": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.PHPExtensionRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get php runtime extension", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/config": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPConfigUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update runtime php conf", + "tags": [ + "Runtime" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "[domain] PHP conf update", + "formatZH": "[domain] PHP 配置修改", + "paramKeys": [] + } + } + }, + "/runtimes/php/config/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.PHPConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load php runtime conf", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/container/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/request.PHPContainerConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get PHP container config", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/container/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPContainerConfig" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update PHP container config", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/extensions": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPExtensionsCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create Extensions", + "tags": [ + "PHP Extensions" + ] + } + }, + "/runtimes/php/extensions/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPExtensionsDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete Extensions", + "tags": [ + "PHP Extensions" + ] + } + }, + "/runtimes/php/extensions/install": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPExtensionInstallReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Install php extension", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/extensions/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPExtensionsSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page Extensions", + "tags": [ + "PHP Extensions" + ] + } + }, + "/runtimes/php/extensions/uninstall": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPExtensionInstallReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "UnInstall php extension", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/extensions/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPExtensionsUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update Extensions", + "tags": [ + "PHP Extensions" + ] + } + }, + "/runtimes/php/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPFileReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.FileInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get php conf file", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/fpm/config": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FPMConfig" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update fpm config", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/fpm/config/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/request.FPMConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get fpm config", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/fpm/status/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "additionalProperties": true, + "type": "object" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get PHP runtime status", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPFileUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update php conf file", + "tags": [ + "Runtime" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteId", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteId" + ], + "formatEN": "Nginx conf update [domain]", + "formatZH": "php 配置修改 [domain]", + "paramKeys": [] + } + } + }, + "/runtimes/remark": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.RuntimeRemark" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update runtime remark", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.RuntimeSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List runtimes", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/supervisor/process": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPSupervisorProcessConfig" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate supervisor process", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/supervisor/process/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.SupervisorProcessConfig" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get supervisor process", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/supervisor/process/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPSupervisorProcessFileReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate supervisor process file", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/sync": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Sync runtime status", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.RuntimeUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update runtime", + "tags": [ + "Runtime" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Update runtime [name]", + "formatZH": "更新运行环境 [name]", + "paramKeys": [] + } + } + }, + "/settings/basedir": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load local backup dir", + "tags": [ + "System Setting" + ] + } + }, + "/settings/description/save": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CommonDescription" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Save common description", + "tags": [ + "System Setting" + ] + } + }, + "/settings/get/{key}": { + "get": { + "parameters": [ + { + "description": "key", + "in": "path", + "name": "key", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.SettingInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system setting by key", + "tags": [ + "System Setting" + ] + } + }, + "/settings/search": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.SettingInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system setting info", + "tags": [ + "System Setting" + ] + } + }, + "/settings/search/available": { + "get": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system available status", + "tags": [ + "System Setting" + ] + } + }, + "/settings/snapshot": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SnapshotCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create system snapshot", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "from", + "description" + ], + "formatEN": "Create system backup [description] to [from]", + "formatZH": "创建系统快照 [description] 到 [from]", + "paramKeys": [] + } + } + }, + "/settings/snapshot/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SnapshotBatchDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete system backup", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "snapshots", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "Delete system backup [name]", + "formatZH": "删除系统快照 [name]", + "paramKeys": [] + } + } + }, + "/settings/snapshot/description/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UpdateDescription" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update snapshot description", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "snapshots", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id", + "description" + ], + "formatEN": "The description of the snapshot [name] is modified =\u003e [description]", + "formatZH": "快照 [name] 描述信息修改 [description]", + "paramKeys": [] + } + } + }, + "/settings/snapshot/import": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SnapshotImport" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Import system snapshot", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "from", + "names" + ], + "formatEN": "Sync system snapshots [names] from [from]", + "formatZH": "从 [from] 同步系统快照 [names]", + "paramKeys": [] + } + } + }, + "/settings/snapshot/load": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.SnapshotData" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system snapshot data", + "tags": [ + "System Setting" + ] + } + }, + "/settings/snapshot/recover": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SnapshotRecover" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Recover system backup", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "snapshots", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Recover from system backup [name]", + "formatZH": "从系统快照 [name] 恢复", + "paramKeys": [] + } + } + }, + "/settings/snapshot/recreate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Recreate system snapshot", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "snapshots", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "recrete the snapshot [name]", + "formatZH": "重试创建快照 [name]", + "paramKeys": [] + } + } + }, + "/settings/snapshot/rollback": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SnapshotRecover" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Rollback system backup", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "snapshots", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Rollback from system backup [name]", + "formatZH": "从系统快照 [name] 回滚", + "paramKeys": [] + } + } + }, + "/settings/snapshot/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageSnapshot" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page system snapshot", + "tags": [ + "System Setting" + ] + } + }, + "/settings/ssh": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Save local conn info", + "tags": [ + "System Setting" + ] + } + }, + "/settings/ssh/check/info": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "boolean" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check local conn info", + "tags": [ + "System Setting" + ] + } + }, + "/settings/ssh/conn": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.SSHConnData" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load local conn", + "tags": [ + "System Setting" + ] + } + }, + "/settings/ssh/conn/default": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SSHDefaultConn" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update local is conn", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "defaultConn" + ], + "formatEN": "update system default conn [defaultConn]", + "formatZH": "本地终端默认连接 [defaultConn]", + "paramKeys": [] + } + } + }, + "/settings/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SettingUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update system setting", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "update system setting [key] =\u003e [value]", + "formatZH": "修改系统配置 [key] =\u003e [value]", + "paramKeys": [] + } + } + }, + "/toolbox/clam": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ClamCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create clam", + "tags": [ + "Clam" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "path" + ], + "formatEN": "create clam [name][path]", + "formatZH": "创建扫描规则 [name][path]", + "paramKeys": [] + } + } + }, + "/toolbox/clam/base": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.ClamBaseInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load clam base info", + "tags": [ + "Clam" + ] + } + }, + "/toolbox/clam/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ClamDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete clam", + "tags": [ + "Clam" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "clams", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "name", + "output_value": "names" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete clam [names]", + "formatZH": "删除扫描规则 [names]", + "paramKeys": [] + } + } + }, + "/toolbox/clam/file/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ClamFileReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load clam file", + "tags": [ + "Clam" + ] + } + }, + "/toolbox/clam/file/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UpdateByNameAndFile" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update clam file", + "tags": [ + "Clam" + ] + } + }, + "/toolbox/clam/handle": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Handle clam scan", + "tags": [ + "Clam" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "clams", + "input_column": "id", + "input_value": "id", + "isList": true, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "handle clam scan [name]", + "formatZH": "执行病毒扫描 [name]", + "paramKeys": [] + } + } + }, + "/toolbox/clam/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Operate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate Clam", + "tags": [ + "Clam" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operation" + ], + "formatEN": "[operation] FTP", + "formatZH": "[operation] Clam", + "paramKeys": [] + } + } + }, + "/toolbox/clam/record/clean": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clean clam record", + "tags": [ + "Clam" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "clams", + "input_column": "id", + "input_value": "id", + "isList": true, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "clean clam record [name]", + "formatZH": "清空扫描报告 [name]", + "paramKeys": [] + } + } + }, + "/toolbox/clam/record/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ClamLogSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page clam record", + "tags": [ + "Clam" + ] + } + }, + "/toolbox/clam/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchClamWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page clam", + "tags": [ + "Clam" + ] + } + }, + "/toolbox/clam/status/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ClamUpdateStatus" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update clam status", + "tags": [ + "Clam" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "clams", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id", + "status" + ], + "formatEN": "change the status of clam [name] to [status].", + "formatZH": "修改扫描规则 [name] 状态为 [status]", + "paramKeys": [] + } + } + }, + "/toolbox/clam/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ClamUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update clam", + "tags": [ + "Clam" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "path" + ], + "formatEN": "update clam [name][path]", + "formatZH": "修改扫描规则 [name][path]", + "paramKeys": [] + } + } + }, + "/toolbox/clean": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "items": { + "$ref": "#/definitions/dto.Clean" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clean system", + "tags": [ + "Device" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Clean system junk files", + "formatZH": "清理系统垃圾文件", + "paramKeys": [] + } + } + }, + "/toolbox/device/base": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.DeviceBaseInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load device base info", + "tags": [ + "Device" + ] + } + }, + "/toolbox/device/check/dns": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SettingUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "boolean" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check device DNS conf", + "tags": [ + "Device" + ] + } + }, + "/toolbox/device/conf": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "load conf", + "tags": [ + "Device" + ] + } + }, + "/toolbox/device/update/byconf": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UpdateByNameAndFile" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update device conf by file", + "tags": [ + "Device" + ] + } + }, + "/toolbox/device/update/conf": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SettingUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update device", + "tags": [ + "Device" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "update device conf [key] =\u003e [value]", + "formatZH": "修改主机参数 [key] =\u003e [value]", + "paramKeys": [] + } + } + }, + "/toolbox/device/update/host": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update device hosts", + "tags": [ + "Device" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "update device host [key] =\u003e [value]", + "formatZH": "修改主机 Host [key] =\u003e [value]", + "paramKeys": [] + } + } + }, + "/toolbox/device/update/passwd": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangePasswd" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update device passwd", + "tags": [ + "Device" + ] + } + }, + "/toolbox/device/update/swap": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SwapHelper" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update device swap", + "tags": [ + "Device" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operate", + "path" + ], + "formatEN": "[operate] device swap [path]", + "formatZH": "[operate] 主机 swap [path]", + "paramKeys": [] + } + } + }, + "/toolbox/device/users": { + "get": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load user list", + "tags": [ + "Device" + ] + } + }, + "/toolbox/device/zone/options": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "list time zone options", + "tags": [ + "Device" + ] + } + }, + "/toolbox/fail2ban/base": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.Fail2BanBaseInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load fail2ban base info", + "tags": [ + "Fail2ban" + ] + } + }, + "/toolbox/fail2ban/load/conf": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load fail2ban conf", + "tags": [ + "Fail2ban" + ] + } + }, + "/toolbox/fail2ban/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Operate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate fail2ban", + "tags": [ + "Fail2ban" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operation" + ], + "formatEN": "[operation] Fail2ban", + "formatZH": "[operation] Fail2ban", + "paramKeys": [] + } + } + }, + "/toolbox/fail2ban/operate/sshd": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Fail2BanSet" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate sshd of fail2ban", + "tags": [ + "Fail2ban" + ] + } + }, + "/toolbox/fail2ban/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Fail2BanSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page fail2ban ip list", + "tags": [ + "Fail2ban" + ] + } + }, + "/toolbox/fail2ban/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Fail2BanUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update fail2ban conf", + "tags": [ + "Fail2ban" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "update fail2ban conf [key] =\u003e [value]", + "formatZH": "修改 Fail2ban 配置 [key] =\u003e [value]", + "paramKeys": [] + } + } + }, + "/toolbox/fail2ban/update/byconf": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UpdateByFile" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update fail2ban conf by file", + "tags": [ + "Fail2ban" + ] + } + }, + "/toolbox/ftp": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.FtpCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create FTP user", + "tags": [ + "FTP" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "user", + "path" + ], + "formatEN": "create FTP [user][path]", + "formatZH": "创建 FTP 账户 [user][path]", + "paramKeys": [] + } + } + }, + "/toolbox/ftp/base": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.FtpBaseInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load FTP base info", + "tags": [ + "FTP" + ] + } + }, + "/toolbox/ftp/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BatchDeleteReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete FTP user", + "tags": [ + "FTP" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "ftps", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "user", + "output_value": "users" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete FTP users [users]", + "formatZH": "删除 FTP 账户 [users]", + "paramKeys": [] + } + } + }, + "/toolbox/ftp/log/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.FtpLogSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load FTP operation log", + "tags": [ + "FTP" + ] + } + }, + "/toolbox/ftp/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Operate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate FTP", + "tags": [ + "FTP" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operation" + ], + "formatEN": "[operation] FTP", + "formatZH": "[operation] FTP", + "paramKeys": [] + } + } + }, + "/toolbox/ftp/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page FTP user", + "tags": [ + "FTP" + ] + } + }, + "/toolbox/ftp/sync": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BatchDeleteReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Sync FTP user", + "tags": [ + "FTP" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "sync FTP users", + "formatZH": "同步 FTP 账户", + "paramKeys": [] + } + } + }, + "/toolbox/ftp/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.FtpUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update FTP user", + "tags": [ + "FTP" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "user", + "path" + ], + "formatEN": "update FTP [user][path]", + "formatZH": "修改 FTP 账户 [user][path]", + "paramKeys": [] + } + } + }, + "/toolbox/scan": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.CleanData" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Scan system", + "tags": [ + "Device" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "scan System Junk Files", + "formatZH": "扫描系统垃圾文件", + "paramKeys": [] + } + } + }, + "/websites": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create website", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "alias" + ], + "formatEN": "Create website [alias]", + "formatZH": "创建网站 [alias]", + "paramKeys": [] + } + } + }, + "/websites/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search website by id", + "tags": [ + "Website" + ] + } + }, + "/websites/:id/config/:type": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.FileInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search website nginx by id", + "tags": [ + "Website Nginx" + ] + } + }, + "/websites/:id/https": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteHTTPS" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load https conf", + "tags": [ + "Website HTTPS" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteHTTPSOp" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteHTTPS" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update https conf", + "tags": [ + "Website HTTPS" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteId", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteId" + ], + "formatEN": "Update website https [domain] conf", + "formatZH": "更新网站 [domain] https 配置", + "paramKeys": [] + } + } + }, + "/websites/acme": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteAcmeAccountCreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteAcmeAccountDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create website acme account", + "tags": [ + "Website Acme" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "email" + ], + "formatEN": "Create website acme [email]", + "formatZH": "创建网站 acme [email]", + "paramKeys": [] + } + } + }, + "/websites/acme/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteResourceReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete website acme account", + "tags": [ + "Website Acme" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_acme_accounts", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "email", + "output_value": "email" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Delete website acme [email]", + "formatZH": "删除网站 acme [email]", + "paramKeys": [] + } + } + }, + "/websites/acme/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageInfo" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page website acme accounts", + "tags": [ + "Website Acme" + ] + } + }, + "/websites/acme/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteAcmeAccountUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteAcmeAccountDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update website acme account", + "tags": [ + "Website Acme" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_acme_accounts", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "email", + "output_value": "email" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update acme [email]", + "formatZH": "更新 acme [email]", + "paramKeys": [] + } + } + }, + "/websites/auths": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxAuthReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxAuthRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get AuthBasic conf", + "tags": [ + "Website" + ] + } + }, + "/websites/auths/path": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxAuthReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxPathAuthRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get AuthBasic conf", + "tags": [ + "Website" + ] + } + }, + "/websites/auths/path/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxPathAuthUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get AuthBasic conf", + "tags": [ + "Website" + ] + } + }, + "/websites/auths/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxAuthUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get AuthBasic conf", + "tags": [ + "Website" + ] + } + }, + "/websites/batch/group": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.BatchWebsiteGroup" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Batch set website group", + "tags": [ + "Website" + ] + } + }, + "/websites/batch/https": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.BatchWebsiteHttps" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Batch set HTTPS for websites", + "tags": [ + "Website" + ] + } + }, + "/websites/batch/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.BatchWebsiteOp" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Batch operate websites", + "tags": [ + "Website" + ] + } + }, + "/websites/ca": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteCACreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/request.WebsiteCACreate" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create website ca", + "tags": [ + "Website CA" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Create website ca [name]", + "formatZH": "创建网站 ca [name]", + "paramKeys": [] + } + } + }, + "/websites/ca/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteCommonReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete website ca", + "tags": [ + "Website CA" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_cas", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Delete website ca [name]", + "formatZH": "删除网站 ca [name]", + "paramKeys": [] + } + } + }, + "/websites/ca/download": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteResourceReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Download CA file", + "tags": [ + "Website CA" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_cas", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "download ca file [name]", + "formatZH": "下载 CA 证书文件 [name]", + "paramKeys": [] + } + } + }, + "/websites/ca/obtain": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteCAObtain" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Obtain SSL", + "tags": [ + "Website CA" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_cas", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Obtain SSL [name]", + "formatZH": "自签 SSL 证书 [name]", + "paramKeys": [] + } + } + }, + "/websites/ca/renew": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteCAObtain" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Obtain SSL", + "tags": [ + "Website CA" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_cas", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Obtain SSL [name]", + "formatZH": "自签 SSL 证书 [name]", + "paramKeys": [] + } + } + }, + "/websites/ca/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteCASearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page website ca", + "tags": [ + "Website CA" + ] + } + }, + "/websites/ca/{id}": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "id", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteCADTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get website ca", + "tags": [ + "Website CA" + ] + } + }, + "/websites/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteInstallCheckReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.WebsitePreInstallCheck" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check before create website", + "tags": [ + "Website" + ] + } + }, + "/websites/config": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxScopeReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteNginxConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load nginx conf", + "tags": [ + "Website Nginx" + ] + } + }, + "/websites/config/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxConfigUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update nginx conf", + "tags": [ + "Website Nginx" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteId", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteId" + ], + "formatEN": "Nginx conf update [domain]", + "formatZH": "nginx 配置修改 [domain]", + "paramKeys": [] + } + } + }, + "/websites/cors/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.CorsConfigReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update CORS Config", + "tags": [ + "Website" + ] + } + }, + "/websites/cors/{id}": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "id", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/request.CorsConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get CORS Config", + "tags": [ + "Website" + ] + } + }, + "/websites/crosssite": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.CrossSiteAccessOp" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate Cross Site Access", + "tags": [ + "Website" + ] + } + }, + "/websites/databases": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.Database" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get databases", + "tags": [ + "Website" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.ChangeDatabase" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change website database", + "tags": [ + "Website" + ] + } + }, + "/websites/default/html/:type": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteHtmlRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get default html", + "tags": [ + "Website" + ] + } + }, + "/websites/default/html/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteHtmlUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update default html", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type" + ], + "formatEN": "Update default html", + "formatZH": "更新默认 html", + "paramKeys": [] + } + } + }, + "/websites/default/server": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteDefaultUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change default server", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id", + "operate" + ], + "formatEN": "Change default server =\u003e [domain]", + "formatZH": "修改默认 server =\u003e [domain]", + "paramKeys": [] + } + } + }, + "/websites/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete website", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Delete website [domain]", + "formatZH": "删除网站 [domain]", + "paramKeys": [] + } + } + }, + "/websites/dir": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteCommonReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteDirConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get website dir", + "tags": [ + "Website" + ] + } + }, + "/websites/dir/permission": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteUpdateDirPermission" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update Site Dir permission", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update domain [domain] dir permission", + "formatZH": "更新网站 [domain] 目录权限", + "paramKeys": [] + } + } + }, + "/websites/dir/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteUpdateDir" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update Site Dir", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update domain [domain] dir", + "formatZH": "更新网站 [domain] 目录", + "paramKeys": [] + } + } + }, + "/websites/dns": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteDnsAccountCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create website dns account", + "tags": [ + "Website DNS" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Create website dns [name]", + "formatZH": "创建网站 dns [name]", + "paramKeys": [] + } + } + }, + "/websites/dns/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteResourceReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete website dns account", + "tags": [ + "Website DNS" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_dns_accounts", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Delete website dns [name]", + "formatZH": "删除网站 dns [name]", + "paramKeys": [] + } + } + }, + "/websites/dns/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageInfo" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page website dns accounts", + "tags": [ + "Website DNS" + ] + } + }, + "/websites/dns/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteDnsAccountUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update website dns account", + "tags": [ + "Website DNS" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Update website dns [name]", + "formatZH": "更新网站 dns [name]", + "paramKeys": [] + } + } + }, + "/websites/domains": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteDomainCreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/model.WebsiteDomain" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create website domain", + "tags": [ + "Website Domain" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "domain" + ], + "formatEN": "Create domain [domain]", + "formatZH": "创建域名 [domain]", + "paramKeys": [] + } + } + }, + "/websites/domains/:websiteId": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "websiteId", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/model.WebsiteDomain" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search website domains by websiteId", + "tags": [ + "Website Domain" + ] + } + }, + "/websites/domains/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteDomainDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete website domain", + "tags": [ + "Website Domain" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_domains", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Delete domain [domain]", + "formatZH": "删除域名 [domain]", + "paramKeys": [] + } + } + }, + "/websites/domains/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteDomainUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update website domain", + "tags": [ + "Website Domain" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_domains", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update domain [domain]", + "formatZH": "更新域名 [domain]", + "paramKeys": [] + } + } + }, + "/websites/exec/composer": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.ExecComposerReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Exec Composer", + "tags": [ + "Website" + ] + } + }, + "/websites/lbs": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteCommonReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.NginxUpstream" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get website upstreams", + "tags": [ + "Website" + ] + } + }, + "/websites/lbs/create": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteLBCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create website upstream", + "tags": [ + "Website" + ] + } + }, + "/websites/lbs/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteLBDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete website upstream", + "tags": [ + "Website" + ] + } + }, + "/websites/lbs/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteLBUpdateFile" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update website upstream file", + "tags": [ + "Website" + ] + } + }, + "/websites/lbs/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteLBUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update website upstream", + "tags": [ + "Website" + ] + } + }, + "/websites/leech": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxCommonReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxAntiLeechRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get AntiLeech conf", + "tags": [ + "Website" + ] + } + }, + "/websites/leech/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxAntiLeechUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update AntiLeech", + "tags": [ + "Website" + ] + } + }, + "/websites/list": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.WebsiteDTO" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List websites", + "tags": [ + "Website" + ] + } + }, + "/websites/log": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteLogReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteLog" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate website log", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id", + "operate" + ], + "formatEN": "[domain][operate] logs", + "formatZH": "[domain][operate] 日志", + "paramKeys": [] + } + } + }, + "/websites/nginx/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteNginxUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update website nginx conf", + "tags": [ + "Website Nginx" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "[domain] Nginx conf update", + "formatZH": "[domain] Nginx 配置修改", + "paramKeys": [] + } + } + }, + "/websites/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteOp" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate website", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id", + "operate" + ], + "formatEN": "[operate] website [domain]", + "formatZH": "[operate] 网站 [domain]", + "paramKeys": [] + } + } + }, + "/websites/options": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.WebsiteOption" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List website names", + "tags": [ + "Website" + ] + } + }, + "/websites/php/version": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsitePHPVersionReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update php version", + "tags": [ + "Website PHP" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteId", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteId" + ], + "formatEN": "php version update [domain]", + "formatZH": "php 版本变更 [domain]", + "paramKeys": [] + } + } + }, + "/websites/proxies": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteProxyReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/request.WebsiteProxyConfig" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get proxy conf", + "tags": [ + "Website" + ] + } + }, + "/websites/proxies/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxProxyUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update proxy file", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteID", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteID" + ], + "formatEN": "Nginx conf proxy file update [domain]", + "formatZH": "更新反向代理文件 [domain]", + "paramKeys": [] + } + } + }, + "/websites/proxies/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteProxyConfig" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update proxy conf", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update domain [domain] proxy config", + "formatZH": "修改网站 [domain] 反向代理配置 ", + "paramKeys": [] + } + } + }, + "/websites/proxy/clear": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clear Website proxy cache", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Clear nginx proxy cache", + "formatZH": "清理 Openresty 代理缓存", + "paramKeys": [] + } + } + }, + "/websites/proxy/config": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxProxyCacheUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "update website proxy cache config", + "tags": [ + "Website" + ] + } + }, + "/websites/proxy/config/{id}": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "id", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxProxyCache" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get website proxy cache config" + } + }, + "/websites/realip/config": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteRealIP" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Set Real IP", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteID", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteID" + ], + "formatEN": "Modify the real IP configuration of [domain] website", + "formatZH": "修改 [domain] 网站真实IP配置 ", + "paramKeys": [] + } + } + }, + "/websites/realip/config/{id}": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "id", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteRealIP" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get Real IP Config", + "tags": [ + "Website" + ] + } + }, + "/websites/redirect": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteProxyReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.NginxRedirectConfig" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get redirect conf", + "tags": [ + "Website" + ] + } + }, + "/websites/redirect/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxRedirectUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update redirect file", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteID", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteID" + ], + "formatEN": "Nginx conf redirect file update [domain]", + "formatZH": "更新重定向文件 [domain]", + "paramKeys": [] + } + } + }, + "/websites/redirect/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxRedirectReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update redirect conf", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteID", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteID" + ], + "formatEN": "Update domain [domain] redirect config", + "formatZH": "修改网站 [domain] 重定向配置 ", + "paramKeys": [] + } + } + }, + "/websites/resource/{id}": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "id", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.Resource" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get website resource", + "tags": [ + "Website" + ] + } + }, + "/websites/rewrite": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxRewriteReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxRewriteRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get rewrite conf", + "tags": [ + "Website" + ] + } + }, + "/websites/rewrite/custom": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List custom rewrite", + "tags": [ + "Website" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.CustomRewriteOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate custom rewrite", + "tags": [ + "Website" + ] + } + }, + "/websites/rewrite/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxRewriteUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update rewrite conf", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteID", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteID" + ], + "formatEN": "Nginx conf rewrite update [domain]", + "formatZH": "伪静态配置修改 [domain]", + "paramKeys": [] + } + } + }, + "/websites/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page websites", + "tags": [ + "Website" + ] + } + }, + "/websites/ssl": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteSSLCreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/request.WebsiteSSLCreate" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create website ssl", + "tags": [ + "Website SSL" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "primaryDomain" + ], + "formatEN": "Create website ssl [primaryDomain]", + "formatZH": "创建网站 ssl [primaryDomain]", + "paramKeys": [] + } + } + }, + "/websites/ssl/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteSSLDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search website ssl by id", + "tags": [ + "Website SSL" + ] + } + }, + "/websites/ssl/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteBatchDelReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete website ssl", + "tags": [ + "Website SSL" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_ssls", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "Delete ssl [domain]", + "formatZH": "删除 ssl [domain]", + "paramKeys": [] + } + } + }, + "/websites/ssl/download": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteResourceReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Download SSL file", + "tags": [ + "Website SSL" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_ssls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "download ssl file [domain]", + "formatZH": "下载证书文件 [domain]", + "paramKeys": [] + } + } + }, + "/websites/ssl/obtain": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteSSLApply" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Apply ssl", + "tags": [ + "Website SSL" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_ssls", + "input_column": "id", + "input_value": "ID", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "ID" + ], + "formatEN": "apply ssl [domain]", + "formatZH": "申请证书 [domain]", + "paramKeys": [] + } + } + }, + "/websites/ssl/resolve": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteDNSReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.WebsiteDNSRes" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Resolve website ssl", + "tags": [ + "Website SSL" + ] + } + }, + "/websites/ssl/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteSSLSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.WebsiteSSLDTO" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page website ssl", + "tags": [ + "Website SSL" + ] + } + }, + "/websites/ssl/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteSSLUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update ssl", + "tags": [ + "Website SSL" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_ssls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update ssl config [domain]", + "formatZH": "更新证书设置 [domain]", + "paramKeys": [] + } + } + }, + "/websites/ssl/upload": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteSSLUpload" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Upload ssl", + "tags": [ + "Website SSL" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type" + ], + "formatEN": "Upload ssl [type]", + "formatZH": "上传 ssl [type]", + "paramKeys": [] + } + } + }, + "/websites/ssl/upload/file": { + "post": { + "consumes": [ + "multipart/form-data" + ], + "parameters": [ + { + "description": "type", + "in": "formData", + "name": "type", + "required": true, + "type": "string" + }, + { + "description": "description", + "in": "formData", + "name": "description", + "type": "string" + }, + { + "description": "sslID", + "in": "formData", + "name": "sslID", + "type": "string" + }, + { + "description": "privateKeyFile", + "in": "formData", + "name": "privateKeyFile", + "required": true, + "type": "file" + }, + { + "description": "certificateFile", + "in": "formData", + "name": "certificateFile", + "required": true, + "type": "file" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Upload SSL file", + "tags": [ + "Website SSL" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type" + ], + "formatEN": "Upload ssl file [type]", + "formatZH": "上传 ssl 文件 [type]", + "paramKeys": [] + } + } + }, + "/websites/ssl/website/:websiteId": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "websiteId", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteSSLDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search website ssl by website id", + "tags": [ + "Website SSL" + ] + } + }, + "/websites/stream/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.StreamUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update Stream Config", + "tags": [ + "Website" + ] + } + }, + "/websites/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update website", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "primaryDomain" + ], + "formatEN": "Update website [primaryDomain]", + "formatZH": "更新网站 [primaryDomain]", + "paramKeys": [] + } + } + } + }, + "definitions": { + "dto.AddrRuleOperate": { + "properties": { + "address": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "operation": { + "enum": [ + "add", + "remove" + ], + "type": "string" + }, + "strategy": { + "enum": [ + "accept", + "drop" + ], + "type": "string" + } + }, + "required": [ + "address", + "operation", + "strategy" + ], + "type": "object" + }, + "dto.AddrRuleUpdate": { + "properties": { + "newRule": { + "$ref": "#/definitions/dto.AddrRuleOperate" + }, + "oldRule": { + "$ref": "#/definitions/dto.AddrRuleOperate" + } + }, + "type": "object" + }, + "dto.ApiInterfaceConfig": { + "properties": { + "apiInterfaceStatus": { + "type": "string" + }, + "apiKey": { + "type": "string" + }, + "apiKeyValidityTime": { + "type": "string" + }, + "ipWhiteList": { + "type": "string" + } + }, + "type": "object" + }, + "dto.AppConfigVersion": { + "properties": { + "additionalProperties": {}, + "downloadCallBackUrl": { + "type": "string" + }, + "downloadUrl": { + "type": "string" + }, + "lastModified": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.AppDefine": { + "properties": { + "additionalProperties": { + "$ref": "#/definitions/dto.AppProperty" + }, + "icon": { + "type": "string" + }, + "lastModified": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "readMe": { + "type": "string" + }, + "versions": { + "items": { + "$ref": "#/definitions/dto.AppConfigVersion" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.AppInstallInfo": { + "properties": { + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.AppLauncher": { + "properties": { + "description": { + "type": "string" + }, + "detail": { + "items": { + "$ref": "#/definitions/dto.InstallDetail" + }, + "type": "array" + }, + "icon": { + "type": "string" + }, + "isInstall": { + "type": "boolean" + }, + "isRecommend": { + "type": "boolean" + }, + "key": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "recommend": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "dto.AppList": { + "properties": { + "additionalProperties": { + "$ref": "#/definitions/dto.ExtraProperties" + }, + "apps": { + "items": { + "$ref": "#/definitions/dto.AppDefine" + }, + "type": "array" + }, + "lastModified": { + "type": "integer" + }, + "valid": { + "type": "boolean" + }, + "violations": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.AppProperty": { + "properties": { + "Required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "architectures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "crossVersionUpdate": { + "type": "boolean" + }, + "deprecated": { + "type": "number" + }, + "description": { + "$ref": "#/definitions/dto.Locale" + }, + "document": { + "type": "string" + }, + "github": { + "type": "string" + }, + "gpuSupport": { + "type": "boolean" + }, + "key": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "memoryRequired": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "recommend": { + "type": "integer" + }, + "shortDescEn": { + "type": "string" + }, + "shortDescZh": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "version": { + "type": "number" + }, + "website": { + "type": "string" + } + }, + "type": "object" + }, + "dto.AppResource": { + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "dto.AppVersion": { + "properties": { + "detailId": { + "type": "integer" + }, + "dockerCompose": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.AppstoreConfig": { + "properties": { + "uninstallDeleteBackup": { + "type": "string" + }, + "uninstallDeleteImage": { + "type": "string" + }, + "upgradeBackup": { + "type": "string" + } + }, + "type": "object" + }, + "dto.AppstoreUpdate": { + "properties": { + "scope": { + "enum": [ + "UninstallDeleteImage", + "UpgradeBackup", + "UninstallDeleteBackup" + ], + "type": "string" + }, + "status": { + "enum": [ + "Disable", + "Enable" + ], + "type": "string" + } + }, + "required": [ + "scope", + "status" + ], + "type": "object" + }, + "dto.BackupClientInfo": { + "properties": { + "client_id": { + "type": "string" + }, + "client_secret": { + "type": "string" + }, + "redirect_uri": { + "type": "string" + } + }, + "type": "object" + }, + "dto.BackupOperate": { + "properties": { + "accessKey": { + "type": "string" + }, + "backupPath": { + "type": "string" + }, + "bucket": { + "type": "string" + }, + "credential": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "isPublic": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "rememberAuth": { + "type": "boolean" + }, + "type": { + "type": "string" + }, + "vars": { + "type": "string" + } + }, + "required": [ + "type", + "vars" + ], + "type": "object" + }, + "dto.BackupOption": { + "properties": { + "id": { + "type": "integer" + }, + "isPublic": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "dto.BatchDelete": { + "properties": { + "force": { + "type": "boolean" + }, + "names": { + "items": { + "type": "string" + }, + "type": "array" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "names" + ], + "type": "object" + }, + "dto.BatchDeleteReq": { + "properties": { + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "required": [ + "ids" + ], + "type": "object" + }, + "dto.BatchRuleOperate": { + "properties": { + "rules": { + "items": { + "$ref": "#/definitions/dto.PortRuleOperate" + }, + "type": "array" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "dto.BindInfo": { + "properties": { + "bindAddress": { + "type": "string" + }, + "ipv6": { + "enum": [ + "Enable", + "Disable" + ], + "type": "string" + } + }, + "required": [ + "bindAddress", + "ipv6" + ], + "type": "object" + }, + "dto.BindUser": { + "properties": { + "database": { + "type": "string" + }, + "db": { + "type": "string" + }, + "password": { + "type": "string" + }, + "permission": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "database", + "db", + "password", + "permission", + "username" + ], + "type": "object" + }, + "dto.CaptchaResponse": { + "properties": { + "captchaID": { + "type": "string" + }, + "imagePath": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ChangeDBInfo": { + "properties": { + "database": { + "type": "string" + }, + "from": { + "enum": [ + "local", + "remote" + ], + "type": "string" + }, + "id": { + "type": "integer" + }, + "type": { + "enum": [ + "mysql", + "mariadb", + "postgresql", + "redis", + "mysql-cluster", + "postgresql-cluster", + "redis-cluster" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "database", + "from", + "type", + "value" + ], + "type": "object" + }, + "dto.ChangeGroup": { + "properties": { + "groupID": { + "type": "integer" + }, + "id": { + "type": "integer" + } + }, + "required": [ + "groupID", + "id" + ], + "type": "object" + }, + "dto.ChangeHostGroup": { + "properties": { + "groupID": { + "type": "integer" + }, + "id": { + "type": "integer" + } + }, + "required": [ + "groupID", + "id" + ], + "type": "object" + }, + "dto.ChangePasswd": { + "properties": { + "passwd": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ChangeQuicks": { + "properties": { + "quicks": { + "items": { + "$ref": "#/definitions/dto.QuickJump" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.ChangeRedisPass": { + "properties": { + "database": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "database" + ], + "type": "object" + }, + "dto.ClamBaseInfo": { + "properties": { + "freshIsActive": { + "type": "boolean" + }, + "freshIsExist": { + "type": "boolean" + }, + "freshVersion": { + "type": "string" + }, + "isActive": { + "type": "boolean" + }, + "isExist": { + "type": "boolean" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ClamCreate": { + "properties": { + "alertCount": { + "type": "integer" + }, + "alertMethod": { + "type": "string" + }, + "alertTitle": { + "type": "string" + }, + "description": { + "type": "string" + }, + "infectedDir": { + "type": "string" + }, + "infectedStrategy": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "spec": { + "type": "string" + }, + "status": { + "type": "string" + }, + "timeout": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.ClamDelete": { + "properties": { + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "removeInfected": { + "type": "boolean" + } + }, + "required": [ + "ids" + ], + "type": "object" + }, + "dto.ClamFileReq": { + "properties": { + "name": { + "type": "string" + }, + "tail": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "dto.ClamLogSearch": { + "properties": { + "clamID": { + "type": "integer" + }, + "endTime": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "startTime": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.ClamUpdate": { + "properties": { + "alertCount": { + "type": "integer" + }, + "alertMethod": { + "type": "string" + }, + "alertTitle": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "infectedDir": { + "type": "string" + }, + "infectedStrategy": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "spec": { + "type": "string" + }, + "timeout": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.ClamUpdateStatus": { + "properties": { + "id": { + "type": "integer" + }, + "status": { + "type": "string" + } + }, + "type": "object" + }, + "dto.Clean": { + "properties": { + "name": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "treeType": { + "type": "string" + } + }, + "type": "object" + }, + "dto.CleanData": { + "properties": { + "backupClean": { + "items": { + "$ref": "#/definitions/dto.CleanTree" + }, + "type": "array" + }, + "containerClean": { + "items": { + "$ref": "#/definitions/dto.CleanTree" + }, + "type": "array" + }, + "downloadClean": { + "items": { + "$ref": "#/definitions/dto.CleanTree" + }, + "type": "array" + }, + "systemClean": { + "items": { + "$ref": "#/definitions/dto.CleanTree" + }, + "type": "array" + }, + "systemLogClean": { + "items": { + "$ref": "#/definitions/dto.CleanTree" + }, + "type": "array" + }, + "uploadClean": { + "items": { + "$ref": "#/definitions/dto.CleanTree" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.CleanLog": { + "properties": { + "logType": { + "enum": [ + "login", + "operation" + ], + "type": "string" + } + }, + "required": [ + "logType" + ], + "type": "object" + }, + "dto.CleanTree": { + "properties": { + "children": { + "items": { + "$ref": "#/definitions/dto.CleanTree" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "isCheck": { + "type": "boolean" + }, + "isRecommend": { + "type": "boolean" + }, + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "dto.CommandInfo": { + "properties": { + "command": { + "type": "string" + }, + "groupBelong": { + "type": "string" + }, + "groupID": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "dto.CommandOperate": { + "properties": { + "command": { + "type": "string" + }, + "groupBelong": { + "type": "string" + }, + "groupID": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "command", + "name" + ], + "type": "object" + }, + "dto.CommandTree": { + "properties": { + "children": { + "items": { + "$ref": "#/definitions/dto.CommandTree" + }, + "type": "array" + }, + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "dto.CommonBackup": { + "properties": { + "description": { + "type": "string" + }, + "detailName": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "secret": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "type": { + "enum": [ + "app", + "mysql", + "mariadb", + "redis", + "website", + "postgresql", + "mysql-cluster", + "postgresql-cluster", + "redis-cluster" + ], + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "dto.CommonDescription": { + "properties": { + "description": { + "type": "string" + }, + "detailType": { + "type": "string" + }, + "id": { + "type": "string" + }, + "isPinned": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "dto.CommonRecover": { + "properties": { + "backupRecordID": { + "type": "integer" + }, + "detailName": { + "type": "string" + }, + "downloadAccountID": { + "type": "integer" + }, + "file": { + "type": "string" + }, + "name": { + "type": "string" + }, + "secret": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "timeout": { + "type": "integer" + }, + "type": { + "enum": [ + "app", + "mysql", + "mariadb", + "redis", + "website", + "postgresql", + "mysql-cluster", + "postgresql-cluster", + "redis-cluster" + ], + "type": "string" + } + }, + "required": [ + "downloadAccountID", + "type" + ], + "type": "object" + }, + "dto.ComposeCreate": { + "properties": { + "env": { + "type": "string" + }, + "file": { + "type": "string" + }, + "from": { + "enum": [ + "edit", + "path", + "template" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "template": { + "type": "integer" + } + }, + "required": [ + "from" + ], + "type": "object" + }, + "dto.ComposeLogClean": { + "properties": { + "detailPath": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + } + }, + "required": [ + "name", + "path" + ], + "type": "object" + }, + "dto.ComposeOperation": { + "properties": { + "force": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "operation": { + "enum": [ + "up", + "start", + "restart", + "stop", + "down", + "delete" + ], + "type": "string" + }, + "path": { + "type": "string" + }, + "withFile": { + "type": "boolean" + } + }, + "required": [ + "name", + "operation" + ], + "type": "object" + }, + "dto.ComposeTemplateBatch": { + "properties": { + "templates": { + "items": { + "$ref": "#/definitions/dto.ComposeTemplateCreate" + }, + "type": "array" + } + }, + "required": [ + "templates" + ], + "type": "object" + }, + "dto.ComposeTemplateCreate": { + "properties": { + "content": { + "type": "string" + }, + "description": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "dto.ComposeTemplateInfo": { + "properties": { + "content": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ComposeTemplateUpdate": { + "properties": { + "content": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.ComposeUpdate": { + "properties": { + "content": { + "type": "string" + }, + "detailPath": { + "type": "string" + }, + "env": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + } + }, + "required": [ + "content", + "name", + "path" + ], + "type": "object" + }, + "dto.ContainerCommit": { + "properties": { + "author": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "containerID": { + "type": "string" + }, + "containerName": { + "type": "string" + }, + "newImageName": { + "type": "string" + }, + "pause": { + "type": "boolean" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "containerID" + ], + "type": "object" + }, + "dto.ContainerCreateByCommand": { + "properties": { + "command": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ContainerItemStats": { + "properties": { + "buildCacheReclaimable": { + "type": "integer" + }, + "buildCacheUsage": { + "type": "integer" + }, + "containerReclaimable": { + "type": "integer" + }, + "containerUsage": { + "type": "integer" + }, + "imageReclaimable": { + "type": "integer" + }, + "imageUsage": { + "type": "integer" + }, + "sizeRootFs": { + "type": "integer" + }, + "sizeRw": { + "type": "integer" + }, + "volumeReclaimable": { + "type": "integer" + }, + "volumeUsage": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.ContainerListStats": { + "properties": { + "containerID": { + "type": "string" + }, + "cpuPercent": { + "type": "number" + }, + "cpuTotalUsage": { + "type": "integer" + }, + "memoryCache": { + "type": "integer" + }, + "memoryLimit": { + "type": "integer" + }, + "memoryPercent": { + "type": "number" + }, + "memoryUsage": { + "type": "integer" + }, + "percpuUsage": { + "type": "integer" + }, + "systemUsage": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.ContainerNetwork": { + "properties": { + "ipv4": { + "type": "string" + }, + "ipv6": { + "type": "string" + }, + "macAddr": { + "type": "string" + }, + "network": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ContainerOperate": { + "properties": { + "autoRemove": { + "type": "boolean" + }, + "cmd": { + "items": { + "type": "string" + }, + "type": "array" + }, + "cpuShares": { + "type": "integer" + }, + "dns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "domainName": { + "type": "string" + }, + "entrypoint": { + "items": { + "type": "string" + }, + "type": "array" + }, + "env": { + "items": { + "type": "string" + }, + "type": "array" + }, + "exposedPorts": { + "items": { + "$ref": "#/definitions/dto.PortHelper" + }, + "type": "array" + }, + "forcePull": { + "type": "boolean" + }, + "hostname": { + "type": "string" + }, + "image": { + "type": "string" + }, + "labels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "memory": { + "type": "number" + }, + "name": { + "type": "string" + }, + "nanoCPUs": { + "type": "number" + }, + "networks": { + "items": { + "$ref": "#/definitions/dto.ContainerNetwork" + }, + "type": "array" + }, + "openStdin": { + "type": "boolean" + }, + "privileged": { + "type": "boolean" + }, + "publishAllPorts": { + "type": "boolean" + }, + "restartPolicy": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "tty": { + "type": "boolean" + }, + "user": { + "type": "string" + }, + "volumes": { + "items": { + "$ref": "#/definitions/dto.VolumeHelper" + }, + "type": "array" + }, + "workingDir": { + "type": "string" + } + }, + "required": [ + "image", + "name" + ], + "type": "object" + }, + "dto.ContainerOperation": { + "properties": { + "names": { + "items": { + "type": "string" + }, + "type": "array" + }, + "operation": { + "enum": [ + "up", + "start", + "stop", + "restart", + "kill", + "pause", + "unpause", + "remove" + ], + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "names", + "operation" + ], + "type": "object" + }, + "dto.ContainerOptions": { + "properties": { + "name": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ContainerPrune": { + "properties": { + "pruneType": { + "enum": [ + "container", + "image", + "volume", + "network", + "buildcache" + ], + "type": "string" + }, + "taskID": { + "type": "string" + }, + "withTagAll": { + "type": "boolean" + } + }, + "required": [ + "pruneType" + ], + "type": "object" + }, + "dto.ContainerRename": { + "properties": { + "name": { + "type": "string" + }, + "newName": { + "type": "string" + } + }, + "required": [ + "name", + "newName" + ], + "type": "object" + }, + "dto.ContainerStats": { + "properties": { + "cache": { + "type": "number" + }, + "cpuPercent": { + "type": "number" + }, + "ioRead": { + "type": "number" + }, + "ioWrite": { + "type": "number" + }, + "memory": { + "type": "number" + }, + "networkRX": { + "type": "number" + }, + "networkTX": { + "type": "number" + }, + "shotTime": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ContainerStatus": { + "properties": { + "composeCount": { + "type": "integer" + }, + "composeTemplateCount": { + "type": "integer" + }, + "containerCount": { + "type": "integer" + }, + "created": { + "type": "integer" + }, + "dead": { + "type": "integer" + }, + "exited": { + "type": "integer" + }, + "imageCount": { + "type": "integer" + }, + "networkCount": { + "type": "integer" + }, + "paused": { + "type": "integer" + }, + "removing": { + "type": "integer" + }, + "repoCount": { + "type": "integer" + }, + "restarting": { + "type": "integer" + }, + "running": { + "type": "integer" + }, + "volumeCount": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.ContainerUpgrade": { + "properties": { + "forcePull": { + "type": "boolean" + }, + "image": { + "type": "string" + }, + "names": { + "items": { + "type": "string" + }, + "type": "array" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "image", + "names" + ], + "type": "object" + }, + "dto.CronjobBatchDelete": { + "properties": { + "cleanData": { + "type": "boolean" + }, + "cleanRemoteData": { + "type": "boolean" + }, + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "required": [ + "ids" + ], + "type": "object" + }, + "dto.CronjobClean": { + "properties": { + "cleanData": { + "type": "boolean" + }, + "cleanRemoteData": { + "type": "boolean" + }, + "cronjobID": { + "type": "integer" + }, + "isDelete": { + "type": "boolean" + } + }, + "required": [ + "cronjobID" + ], + "type": "object" + }, + "dto.CronjobImport": { + "properties": { + "cronjobs": { + "items": { + "$ref": "#/definitions/dto.CronjobTrans" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.CronjobOperate": { + "properties": { + "alertCount": { + "type": "integer" + }, + "alertMethod": { + "type": "string" + }, + "alertTitle": { + "type": "string" + }, + "appID": { + "type": "string" + }, + "command": { + "type": "string" + }, + "containerName": { + "type": "string" + }, + "dbName": { + "type": "string" + }, + "dbType": { + "type": "string" + }, + "downloadAccountID": { + "type": "integer" + }, + "exclusionRules": { + "type": "string" + }, + "executor": { + "type": "string" + }, + "groupID": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "ignoreErr": { + "type": "boolean" + }, + "isDir": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "retainCopies": { + "minimum": 1, + "type": "integer" + }, + "retryTimes": { + "minimum": 0, + "type": "integer" + }, + "scopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "script": { + "type": "string" + }, + "scriptID": { + "type": "integer" + }, + "scriptMode": { + "type": "string" + }, + "secret": { + "type": "string" + }, + "snapshotRule": { + "$ref": "#/definitions/dto.SnapshotRule" + }, + "sourceAccountIDs": { + "type": "string" + }, + "sourceDir": { + "type": "string" + }, + "spec": { + "type": "string" + }, + "specCustom": { + "type": "boolean" + }, + "timeout": { + "minimum": 1, + "type": "integer" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user": { + "type": "string" + }, + "website": { + "type": "string" + } + }, + "required": [ + "name", + "spec", + "type" + ], + "type": "object" + }, + "dto.CronjobSpec": { + "properties": { + "spec": { + "type": "string" + } + }, + "required": [ + "spec" + ], + "type": "object" + }, + "dto.CronjobTrans": { + "properties": { + "alertCount": { + "type": "integer" + }, + "alertMethod": { + "type": "string" + }, + "alertTitle": { + "type": "string" + }, + "apps": { + "items": { + "$ref": "#/definitions/dto.TransHelper" + }, + "type": "array" + }, + "command": { + "type": "string" + }, + "containerName": { + "type": "string" + }, + "dbName": { + "items": { + "$ref": "#/definitions/dto.TransHelper" + }, + "type": "array" + }, + "dbType": { + "type": "string" + }, + "downloadAccount": { + "type": "string" + }, + "exclusionRules": { + "type": "string" + }, + "executor": { + "type": "string" + }, + "groupID": { + "type": "integer" + }, + "ignoreErr": { + "type": "boolean" + }, + "isDir": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "retainCopies": { + "type": "integer" + }, + "retryTimes": { + "type": "integer" + }, + "script": { + "type": "string" + }, + "scriptMode": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "secret": { + "type": "string" + }, + "snapshotRule": { + "$ref": "#/definitions/dto.SnapshotTransHelper" + }, + "sourceAccounts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sourceDir": { + "type": "string" + }, + "spec": { + "type": "string" + }, + "specCustom": { + "type": "boolean" + }, + "timeout": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user": { + "type": "string" + }, + "websites": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.CronjobUpdateStatus": { + "properties": { + "id": { + "type": "integer" + }, + "status": { + "type": "string" + } + }, + "required": [ + "id", + "status" + ], + "type": "object" + }, + "dto.DBBaseInfo": { + "properties": { + "containerName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "port": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.DBConfUpdateByFile": { + "properties": { + "database": { + "type": "string" + }, + "file": { + "type": "string" + }, + "type": { + "enum": [ + "mysql", + "mariadb", + "postgresql", + "redis", + "mysql-cluster", + "postgresql-cluster", + "redis-cluster" + ], + "type": "string" + } + }, + "required": [ + "database", + "type" + ], + "type": "object" + }, + "dto.DaemonJsonConf": { + "properties": { + "cgroupDriver": { + "type": "string" + }, + "experimental": { + "type": "boolean" + }, + "fixedCidrV6": { + "type": "string" + }, + "insecureRegistries": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ip6Tables": { + "type": "boolean" + }, + "iptables": { + "type": "boolean" + }, + "ipv6": { + "type": "boolean" + }, + "isSwarm": { + "type": "boolean" + }, + "liveRestore": { + "type": "boolean" + }, + "logMaxFile": { + "type": "string" + }, + "logMaxSize": { + "type": "string" + }, + "registryMirrors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.DaemonJsonUpdateByFile": { + "properties": { + "file": { + "type": "string" + } + }, + "type": "object" + }, + "dto.DashboardBase": { + "properties": { + "appInstalledNumber": { + "type": "integer" + }, + "cpuCores": { + "type": "integer" + }, + "cpuLogicalCores": { + "type": "integer" + }, + "cpuMhz": { + "type": "number" + }, + "cpuModelName": { + "type": "string" + }, + "cronjobNumber": { + "type": "integer" + }, + "currentInfo": { + "$ref": "#/definitions/dto.DashboardCurrent" + }, + "databaseNumber": { + "type": "integer" + }, + "hostname": { + "type": "string" + }, + "ipV4Addr": { + "type": "string" + }, + "kernelArch": { + "type": "string" + }, + "kernelVersion": { + "type": "string" + }, + "os": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "platformFamily": { + "type": "string" + }, + "platformVersion": { + "type": "string" + }, + "prettyDistro": { + "type": "string" + }, + "quickJump": { + "items": { + "$ref": "#/definitions/dto.QuickJump" + }, + "type": "array" + }, + "systemProxy": { + "type": "string" + }, + "virtualizationSystem": { + "type": "string" + }, + "websiteNumber": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.DashboardCurrent": { + "properties": { + "cpuDetailedPercent": { + "items": { + "type": "number" + }, + "type": "array" + }, + "cpuPercent": { + "items": { + "type": "number" + }, + "type": "array" + }, + "cpuTotal": { + "type": "integer" + }, + "cpuUsed": { + "type": "number" + }, + "cpuUsedPercent": { + "type": "number" + }, + "diskData": { + "items": { + "$ref": "#/definitions/dto.DiskInfo" + }, + "type": "array" + }, + "gpuData": { + "items": { + "$ref": "#/definitions/dto.GPUInfo" + }, + "type": "array" + }, + "ioCount": { + "type": "integer" + }, + "ioReadBytes": { + "type": "integer" + }, + "ioReadTime": { + "type": "integer" + }, + "ioWriteBytes": { + "type": "integer" + }, + "ioWriteTime": { + "type": "integer" + }, + "load1": { + "type": "number" + }, + "load15": { + "type": "number" + }, + "load5": { + "type": "number" + }, + "loadUsagePercent": { + "type": "number" + }, + "memoryAvailable": { + "type": "integer" + }, + "memoryCache": { + "type": "integer" + }, + "memoryFree": { + "type": "integer" + }, + "memoryShard": { + "type": "integer" + }, + "memoryTotal": { + "type": "integer" + }, + "memoryUsed": { + "type": "integer" + }, + "memoryUsedPercent": { + "type": "number" + }, + "netBytesRecv": { + "type": "integer" + }, + "netBytesSent": { + "type": "integer" + }, + "procs": { + "type": "integer" + }, + "shotTime": { + "type": "string" + }, + "swapMemoryAvailable": { + "type": "integer" + }, + "swapMemoryTotal": { + "type": "integer" + }, + "swapMemoryUsed": { + "type": "integer" + }, + "swapMemoryUsedPercent": { + "type": "number" + }, + "timeSinceUptime": { + "type": "string" + }, + "topCPUItems": { + "items": { + "$ref": "#/definitions/dto.Process" + }, + "type": "array" + }, + "topMemItems": { + "items": { + "$ref": "#/definitions/dto.Process" + }, + "type": "array" + }, + "uptime": { + "type": "integer" + }, + "xpuData": { + "items": { + "$ref": "#/definitions/dto.XPUInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.DataTree": { + "properties": { + "children": { + "items": { + "$ref": "#/definitions/dto.DataTree" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "isCheck": { + "type": "boolean" + }, + "isDisable": { + "type": "boolean" + }, + "isLocal": { + "type": "boolean" + }, + "key": { + "type": "string" + }, + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "relationItemID": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.DatabaseCreate": { + "properties": { + "address": { + "type": "string" + }, + "clientCert": { + "type": "string" + }, + "clientKey": { + "type": "string" + }, + "description": { + "type": "string" + }, + "from": { + "enum": [ + "local", + "remote" + ], + "type": "string" + }, + "initialDB": { + "type": "string" + }, + "name": { + "maxLength": 256, + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "rootCert": { + "type": "string" + }, + "skipVerify": { + "type": "boolean" + }, + "ssl": { + "type": "boolean" + }, + "timeout": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "from", + "name", + "type", + "username", + "version" + ], + "type": "object" + }, + "dto.DatabaseDelete": { + "properties": { + "deleteBackup": { + "type": "boolean" + }, + "forceDelete": { + "type": "boolean" + }, + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "dto.DatabaseInfo": { + "properties": { + "address": { + "type": "string" + }, + "clientCert": { + "type": "string" + }, + "clientKey": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "description": { + "type": "string" + }, + "from": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "initialDB": { + "type": "string" + }, + "name": { + "maxLength": 256, + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "rootCert": { + "type": "string" + }, + "skipVerify": { + "type": "boolean" + }, + "ssl": { + "type": "boolean" + }, + "timeout": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.DatabaseItem": { + "properties": { + "database": { + "type": "string" + }, + "from": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.DatabaseOption": { + "properties": { + "address": { + "type": "string" + }, + "database": { + "type": "string" + }, + "from": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.DatabaseSearch": { + "properties": { + "info": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "name", + "createdAt" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "required": [ + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.DatabaseUpdate": { + "properties": { + "address": { + "type": "string" + }, + "clientCert": { + "type": "string" + }, + "clientKey": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "initialDB": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "rootCert": { + "type": "string" + }, + "skipVerify": { + "type": "boolean" + }, + "ssl": { + "type": "boolean" + }, + "timeout": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "type", + "username", + "version" + ], + "type": "object" + }, + "dto.DeviceBaseInfo": { + "properties": { + "dns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "hostname": { + "type": "string" + }, + "hosts": { + "items": { + "$ref": "#/definitions/dto.HostHelper" + }, + "type": "array" + }, + "localTime": { + "type": "string" + }, + "maxSize": { + "type": "integer" + }, + "ntp": { + "type": "string" + }, + "swapDetails": { + "items": { + "$ref": "#/definitions/dto.SwapHelper" + }, + "type": "array" + }, + "swapMemoryAvailable": { + "type": "integer" + }, + "swapMemoryTotal": { + "type": "integer" + }, + "swapMemoryUsed": { + "type": "integer" + }, + "timeZone": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "dto.DiskInfo": { + "properties": { + "device": { + "type": "string" + }, + "free": { + "type": "integer" + }, + "inodesFree": { + "type": "integer" + }, + "inodesTotal": { + "type": "integer" + }, + "inodesUsed": { + "type": "integer" + }, + "inodesUsedPercent": { + "type": "number" + }, + "path": { + "type": "string" + }, + "total": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "used": { + "type": "integer" + }, + "usedPercent": { + "type": "number" + } + }, + "type": "object" + }, + "dto.DockerOperation": { + "properties": { + "operation": { + "enum": [ + "start", + "restart", + "stop" + ], + "type": "string" + } + }, + "required": [ + "operation" + ], + "type": "object" + }, + "dto.DownloadRecord": { + "properties": { + "downloadAccountID": { + "type": "integer" + }, + "fileDir": { + "type": "string" + }, + "fileName": { + "type": "string" + } + }, + "required": [ + "downloadAccountID", + "fileDir", + "fileName" + ], + "type": "object" + }, + "dto.ExtraProperties": { + "properties": { + "tags": { + "items": { + "$ref": "#/definitions/dto.Tag" + }, + "type": "array" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.Fail2BanBaseInfo": { + "properties": { + "banAction": { + "type": "string" + }, + "banTime": { + "type": "string" + }, + "findTime": { + "type": "string" + }, + "isActive": { + "type": "boolean" + }, + "isEnable": { + "type": "boolean" + }, + "isExist": { + "type": "boolean" + }, + "logPath": { + "type": "string" + }, + "maxRetry": { + "type": "integer" + }, + "port": { + "type": "integer" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.Fail2BanSearch": { + "properties": { + "status": { + "enum": [ + "banned", + "ignore" + ], + "type": "string" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "dto.Fail2BanSet": { + "properties": { + "ips": { + "items": { + "type": "string" + }, + "type": "array" + }, + "operate": { + "enum": [ + "banned", + "ignore" + ], + "type": "string" + } + }, + "required": [ + "operate" + ], + "type": "object" + }, + "dto.Fail2BanUpdate": { + "properties": { + "key": { + "enum": [ + "port", + "bantime", + "findtime", + "maxretry", + "banaction", + "logpath", + "port" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object" + }, + "dto.FirewallBaseInfo": { + "properties": { + "isActive": { + "type": "boolean" + }, + "isBind": { + "type": "boolean" + }, + "isExist": { + "type": "boolean" + }, + "isInit": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "pingStatus": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.FirewallOperation": { + "properties": { + "operation": { + "enum": [ + "start", + "stop", + "restart", + "disableBanPing", + "enableBanPing" + ], + "type": "string" + }, + "withDockerRestart": { + "type": "boolean" + } + }, + "required": [ + "operation" + ], + "type": "object" + }, + "dto.ForBuckets": { + "properties": { + "accessKey": { + "type": "string" + }, + "credential": { + "type": "string" + }, + "type": { + "type": "string" + }, + "vars": { + "type": "string" + } + }, + "required": [ + "credential", + "type", + "vars" + ], + "type": "object" + }, + "dto.ForceDelete": { + "properties": { + "forceDelete": { + "type": "boolean" + }, + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.ForwardRuleOperate": { + "properties": { + "forceDelete": { + "type": "boolean" + }, + "rules": { + "items": { + "properties": { + "interface": { + "type": "string" + }, + "num": { + "type": "string" + }, + "operation": { + "enum": [ + "add", + "remove" + ], + "type": "string" + }, + "port": { + "type": "string" + }, + "protocol": { + "enum": [ + "tcp", + "udp", + "tcp/udp" + ], + "type": "string" + }, + "targetIP": { + "type": "string" + }, + "targetPort": { + "type": "string" + } + }, + "required": [ + "operation", + "port", + "protocol", + "targetPort" + ], + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.FtpBaseInfo": { + "properties": { + "isActive": { + "type": "boolean" + }, + "isExist": { + "type": "boolean" + } + }, + "type": "object" + }, + "dto.FtpCreate": { + "properties": { + "description": { + "type": "string" + }, + "password": { + "type": "string" + }, + "path": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "required": [ + "password", + "path", + "user" + ], + "type": "object" + }, + "dto.FtpLogSearch": { + "properties": { + "operation": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "user": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.FtpUpdate": { + "properties": { + "description": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "password": { + "type": "string" + }, + "path": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "password", + "path" + ], + "type": "object" + }, + "dto.GPUInfo": { + "properties": { + "fanSpeed": { + "type": "string" + }, + "gpuUtil": { + "type": "string" + }, + "index": { + "type": "integer" + }, + "maxPowerLimit": { + "type": "string" + }, + "memTotal": { + "type": "string" + }, + "memUsed": { + "type": "string" + }, + "memoryUsage": { + "type": "string" + }, + "performanceState": { + "type": "string" + }, + "powerDraw": { + "type": "string" + }, + "powerUsage": { + "type": "string" + }, + "productName": { + "type": "string" + }, + "temperature": { + "type": "string" + } + }, + "type": "object" + }, + "dto.GPUProcess": { + "properties": { + "pid": { + "type": "string" + }, + "processName": { + "type": "string" + }, + "type": { + "type": "string" + }, + "usedMemory": { + "type": "string" + } + }, + "type": "object" + }, + "dto.GroupCreate": { + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "type": "object" + }, + "dto.GroupSearch": { + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "dto.GroupUpdate": { + "properties": { + "id": { + "type": "integer" + }, + "isDefault": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "dto.HostConnTest": { + "properties": { + "addr": { + "type": "string" + }, + "authMode": { + "enum": [ + "password", + "key" + ], + "type": "string" + }, + "passPhrase": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "privateKey": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "required": [ + "addr", + "port", + "user" + ], + "type": "object" + }, + "dto.HostHelper": { + "properties": { + "host": { + "type": "string" + }, + "ip": { + "type": "string" + } + }, + "type": "object" + }, + "dto.HostInfo": { + "properties": { + "addr": { + "type": "string" + }, + "authMode": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "description": { + "type": "string" + }, + "groupBelong": { + "type": "string" + }, + "groupID": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "passPhrase": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "privateKey": { + "type": "string" + }, + "rememberPassword": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "dto.HostOperate": { + "properties": { + "addr": { + "type": "string" + }, + "authMode": { + "enum": [ + "password", + "key" + ], + "type": "string" + }, + "description": { + "type": "string" + }, + "groupID": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "passPhrase": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "privateKey": { + "type": "string" + }, + "rememberPassword": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "required": [ + "addr", + "port", + "user" + ], + "type": "object" + }, + "dto.HostTree": { + "properties": { + "children": { + "items": { + "$ref": "#/definitions/dto.TreeChild" + }, + "type": "array" + }, + "id": { + "type": "integer" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ImageBuild": { + "properties": { + "args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "dockerfile": { + "type": "string" + }, + "from": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "dockerfile", + "from", + "name" + ], + "type": "object" + }, + "dto.ImageInfo": { + "properties": { + "createdAt": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "string" + }, + "isPinned": { + "type": "boolean" + }, + "isUsed": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.ImageLoad": { + "properties": { + "path": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "dto.ImagePull": { + "properties": { + "imageName": { + "items": { + "type": "string" + }, + "type": "array" + }, + "repoID": { + "type": "integer" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "imageName" + ], + "type": "object" + }, + "dto.ImagePush": { + "properties": { + "name": { + "type": "string" + }, + "repoID": { + "type": "integer" + }, + "tagName": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "name", + "repoID", + "tagName" + ], + "type": "object" + }, + "dto.ImageRepoDelete": { + "properties": { + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "required": [ + "ids" + ], + "type": "object" + }, + "dto.ImageRepoOption": { + "properties": { + "downloadUrl": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ImageRepoUpdate": { + "properties": { + "auth": { + "type": "boolean" + }, + "downloadUrl": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "password": { + "type": "string" + }, + "protocol": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ImageSave": { + "properties": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "tagName": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "name", + "path", + "tagName" + ], + "type": "object" + }, + "dto.ImageTag": { + "properties": { + "sourceID": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "sourceID", + "tags" + ], + "type": "object" + }, + "dto.InspectReq": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "dto.InstallDetail": { + "properties": { + "detailID": { + "type": "integer" + }, + "httpPort": { + "type": "integer" + }, + "httpsPort": { + "type": "integer" + }, + "installID": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + }, + "webUI": { + "type": "string" + } + }, + "type": "object" + }, + "dto.IptablesBatchOperate": { + "properties": { + "rules": { + "items": { + "$ref": "#/definitions/dto.IptablesRuleOp" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.IptablesOp": { + "properties": { + "name": { + "enum": [ + "1PANEL_INPUT", + "1PANEL_OUTPUT", + "1PANEL_BASIC" + ], + "type": "string" + }, + "operate": { + "enum": [ + "init-base", + "init-forward", + "init-advance", + "bind-base", + "unbind-base", + "bind", + "unbind" + ], + "type": "string" + } + }, + "required": [ + "name", + "operate" + ], + "type": "object" + }, + "dto.IptablesRuleOp": { + "properties": { + "chain": { + "enum": [ + "1PANEL_BASIC", + "1PANEL_BASIC_BEFORE", + "1PANEL_INPUT", + "1PANEL_OUTPUT" + ], + "type": "string" + }, + "description": { + "type": "string" + }, + "dstIP": { + "type": "string" + }, + "dstPort": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "operation": { + "enum": [ + "add", + "remove" + ], + "type": "string" + }, + "protocol": { + "type": "string" + }, + "srcIP": { + "type": "string" + }, + "srcPort": { + "type": "integer" + }, + "strategy": { + "enum": [ + "accept", + "drop", + "reject" + ], + "type": "string" + } + }, + "required": [ + "chain", + "operation", + "strategy" + ], + "type": "object" + }, + "dto.LauncherOption": { + "properties": { + "isShow": { + "type": "boolean" + }, + "key": { + "type": "string" + } + }, + "type": "object" + }, + "dto.LoadRedisStatus": { + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "type": "object" + }, + "dto.Locale": { + "properties": { + "en": { + "type": "string" + }, + "es-es": { + "type": "string" + }, + "ja": { + "type": "string" + }, + "ko": { + "type": "string" + }, + "ms": { + "type": "string" + }, + "pt-br": { + "type": "string" + }, + "ru": { + "type": "string" + }, + "tr": { + "type": "string" + }, + "zh": { + "type": "string" + }, + "zh-hant": { + "type": "string" + } + }, + "type": "object" + }, + "dto.LogOption": { + "properties": { + "logMaxFile": { + "type": "string" + }, + "logMaxSize": { + "type": "string" + } + }, + "type": "object" + }, + "dto.Login": { + "properties": { + "captcha": { + "type": "string" + }, + "captchaID": { + "type": "string" + }, + "language": { + "enum": [ + "zh", + "en", + "zh-Hant", + "ko", + "ja", + "ru", + "ms", + "pt-BR", + "tr", + "es-ES" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "required": [ + "language", + "name", + "password" + ], + "type": "object" + }, + "dto.MFALogin": { + "properties": { + "code": { + "type": "string" + }, + "name": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "required": [ + "code", + "name", + "password" + ], + "type": "object" + }, + "dto.MfaCredential": { + "properties": { + "code": { + "type": "string" + }, + "interval": { + "type": "string" + }, + "secret": { + "type": "string" + } + }, + "required": [ + "code", + "interval", + "secret" + ], + "type": "object" + }, + "dto.MonitorData": { + "properties": { + "date": { + "items": { + "type": "string" + }, + "type": "array" + }, + "param": { + "type": "string" + }, + "value": { + "items": {}, + "type": "array" + } + }, + "type": "object" + }, + "dto.MonitorGPUData": { + "properties": { + "date": { + "items": { + "type": "string" + }, + "type": "array" + }, + "gpuProcesses": { + "items": { + "items": { + "$ref": "#/definitions/dto.GPUProcess" + }, + "type": "array" + }, + "type": "array" + }, + "gpuValue": { + "items": { + "type": "number" + }, + "type": "array" + }, + "memoryPercent": { + "items": { + "type": "number" + }, + "type": "array" + }, + "memoryTotal": { + "items": { + "type": "number" + }, + "type": "array" + }, + "memoryUsed": { + "items": { + "type": "number" + }, + "type": "array" + }, + "powerPercent": { + "items": { + "type": "number" + }, + "type": "array" + }, + "powerTotal": { + "items": { + "type": "number" + }, + "type": "array" + }, + "powerUsed": { + "items": { + "type": "number" + }, + "type": "array" + }, + "processCount": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "speedValue": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "temperatureValue": { + "items": { + "type": "number" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.MonitorGPUSearch": { + "properties": { + "endTime": { + "type": "string" + }, + "productName": { + "type": "string" + }, + "startTime": { + "type": "string" + } + }, + "type": "object" + }, + "dto.MonitorSearch": { + "properties": { + "endTime": { + "type": "string" + }, + "io": { + "type": "string" + }, + "network": { + "type": "string" + }, + "param": { + "enum": [ + "all", + "cpu", + "memory", + "load", + "io", + "network" + ], + "type": "string" + }, + "startTime": { + "type": "string" + } + }, + "required": [ + "param" + ], + "type": "object" + }, + "dto.MonitorSetting": { + "properties": { + "defaultIO": { + "type": "string" + }, + "defaultNetwork": { + "type": "string" + }, + "monitorInterval": { + "type": "string" + }, + "monitorStatus": { + "type": "string" + }, + "monitorStoreDays": { + "type": "string" + } + }, + "type": "object" + }, + "dto.MonitorSettingUpdate": { + "properties": { + "key": { + "enum": [ + "MonitorStatus", + "MonitorStoreDays", + "MonitorInterval", + "DefaultNetwork", + "DefaultIO" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object" + }, + "dto.MysqlDBCreate": { + "properties": { + "collation": { + "type": "string" + }, + "database": { + "type": "string" + }, + "description": { + "type": "string" + }, + "format": { + "type": "string" + }, + "from": { + "enum": [ + "local", + "remote" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "permission": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "database", + "format", + "from", + "name", + "password", + "permission", + "username" + ], + "type": "object" + }, + "dto.MysqlDBDelete": { + "properties": { + "database": { + "type": "string" + }, + "deleteBackup": { + "type": "boolean" + }, + "forceDelete": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "type": { + "enum": [ + "mysql", + "mariadb", + "mysql-cluster" + ], + "type": "string" + } + }, + "required": [ + "database", + "id", + "type" + ], + "type": "object" + }, + "dto.MysqlDBDeleteCheck": { + "properties": { + "database": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "type": { + "enum": [ + "mysql", + "mariadb", + "mysql-cluster" + ], + "type": "string" + } + }, + "required": [ + "database", + "id", + "type" + ], + "type": "object" + }, + "dto.MysqlDBSearch": { + "properties": { + "database": { + "type": "string" + }, + "info": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "name", + "createdAt" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "database", + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.MysqlFormatCollationOption": { + "properties": { + "collations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "type": "object" + }, + "dto.MysqlLoadDB": { + "properties": { + "database": { + "type": "string" + }, + "from": { + "enum": [ + "local", + "remote" + ], + "type": "string" + }, + "type": { + "enum": [ + "mysql", + "mariadb", + "mysql-cluster" + ], + "type": "string" + } + }, + "required": [ + "database", + "from", + "type" + ], + "type": "object" + }, + "dto.MysqlStatus": { + "properties": { + "Aborted_clients": { + "type": "string" + }, + "Aborted_connects": { + "type": "string" + }, + "Bytes_received": { + "type": "string" + }, + "Bytes_sent": { + "type": "string" + }, + "Com_commit": { + "type": "string" + }, + "Com_rollback": { + "type": "string" + }, + "Connections": { + "type": "string" + }, + "Created_tmp_disk_tables": { + "type": "string" + }, + "Created_tmp_tables": { + "type": "string" + }, + "File": { + "type": "string" + }, + "Innodb_buffer_pool_pages_dirty": { + "type": "string" + }, + "Innodb_buffer_pool_read_requests": { + "type": "string" + }, + "Innodb_buffer_pool_reads": { + "type": "string" + }, + "Key_read_requests": { + "type": "string" + }, + "Key_reads": { + "type": "string" + }, + "Key_write_requests": { + "type": "string" + }, + "Key_writes": { + "type": "string" + }, + "Max_used_connections": { + "type": "string" + }, + "Open_tables": { + "type": "string" + }, + "Opened_files": { + "type": "string" + }, + "Opened_tables": { + "type": "string" + }, + "Position": { + "type": "string" + }, + "Qcache_hits": { + "type": "string" + }, + "Qcache_inserts": { + "type": "string" + }, + "Questions": { + "type": "string" + }, + "Run": { + "type": "string" + }, + "Select_full_join": { + "type": "string" + }, + "Select_range_check": { + "type": "string" + }, + "Sort_merge_passes": { + "type": "string" + }, + "Table_locks_waited": { + "type": "string" + }, + "Threads_cached": { + "type": "string" + }, + "Threads_connected": { + "type": "string" + }, + "Threads_created": { + "type": "string" + }, + "Threads_running": { + "type": "string" + }, + "Uptime": { + "type": "string" + } + }, + "type": "object" + }, + "dto.MysqlVariables": { + "properties": { + "binlog_cache_size": { + "type": "string" + }, + "innodb_buffer_pool_size": { + "type": "string" + }, + "innodb_log_buffer_size": { + "type": "string" + }, + "join_buffer_size": { + "type": "string" + }, + "key_buffer_size": { + "type": "string" + }, + "long_query_time": { + "type": "string" + }, + "max_connections": { + "type": "string" + }, + "max_heap_table_size": { + "type": "string" + }, + "query_cache_size": { + "type": "string" + }, + "query_cache_type": { + "type": "string" + }, + "read_buffer_size": { + "type": "string" + }, + "read_rnd_buffer_size": { + "type": "string" + }, + "slow_query_log": { + "type": "string" + }, + "sort_buffer_size": { + "type": "string" + }, + "table_open_cache": { + "type": "string" + }, + "thread_cache_size": { + "type": "string" + }, + "thread_stack": { + "type": "string" + }, + "tmp_table_size": { + "type": "string" + } + }, + "type": "object" + }, + "dto.MysqlVariablesUpdate": { + "properties": { + "database": { + "type": "string" + }, + "type": { + "enum": [ + "mysql", + "mariadb", + "mysql-cluster" + ], + "type": "string" + }, + "variables": { + "items": { + "$ref": "#/definitions/dto.MysqlVariablesUpdateHelper" + }, + "type": "array" + } + }, + "required": [ + "database", + "type" + ], + "type": "object" + }, + "dto.MysqlVariablesUpdateHelper": { + "properties": { + "param": { + "type": "string" + }, + "value": {} + }, + "type": "object" + }, + "dto.NetworkCreate": { + "properties": { + "auxAddress": { + "items": { + "$ref": "#/definitions/dto.SettingUpdate" + }, + "type": "array" + }, + "auxAddressV6": { + "items": { + "$ref": "#/definitions/dto.SettingUpdate" + }, + "type": "array" + }, + "driver": { + "type": "string" + }, + "gateway": { + "type": "string" + }, + "gatewayV6": { + "type": "string" + }, + "ipRange": { + "type": "string" + }, + "ipRangeV6": { + "type": "string" + }, + "ipv4": { + "type": "boolean" + }, + "ipv6": { + "type": "boolean" + }, + "labels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "options": { + "items": { + "type": "string" + }, + "type": "array" + }, + "subnet": { + "type": "string" + }, + "subnetV6": { + "type": "string" + } + }, + "required": [ + "driver", + "name" + ], + "type": "object" + }, + "dto.NginxAuth": { + "properties": { + "remark": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "dto.NginxKey": { + "enum": [ + "index", + "limit-conn", + "ssl", + "cache", + "http-per", + "proxy-cache" + ], + "type": "string", + "x-enum-varnames": [ + "Index", + "LimitConn", + "SSL", + "CACHE", + "HttpPer", + "ProxyCache" + ] + }, + "dto.NginxUpstream": { + "properties": { + "algorithm": { + "type": "string" + }, + "content": { + "type": "string" + }, + "name": { + "type": "string" + }, + "servers": { + "items": { + "$ref": "#/definitions/dto.NginxUpstreamServer" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.NginxUpstreamServer": { + "properties": { + "failTimeout": { + "type": "integer" + }, + "failTimeoutUnit": { + "type": "string" + }, + "flag": { + "type": "string" + }, + "maxConns": { + "type": "integer" + }, + "maxFails": { + "type": "integer" + }, + "server": { + "type": "string" + }, + "weight": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.NodeCurrent": { + "properties": { + "cpuDetailedPercent": { + "items": { + "type": "number" + }, + "type": "array" + }, + "cpuTotal": { + "type": "integer" + }, + "cpuUsed": { + "type": "number" + }, + "cpuUsedPercent": { + "type": "number" + }, + "load1": { + "type": "number" + }, + "load15": { + "type": "number" + }, + "load5": { + "type": "number" + }, + "loadUsagePercent": { + "type": "number" + }, + "memoryAvailable": { + "type": "integer" + }, + "memoryTotal": { + "type": "integer" + }, + "memoryUsed": { + "type": "integer" + }, + "memoryUsedPercent": { + "type": "number" + }, + "swapMemoryAvailable": { + "type": "integer" + }, + "swapMemoryTotal": { + "type": "integer" + }, + "swapMemoryUsed": { + "type": "integer" + }, + "swapMemoryUsedPercent": { + "type": "number" + } + }, + "type": "object" + }, + "dto.OllamaBindDomain": { + "properties": { + "appInstallID": { + "type": "integer" + }, + "domain": { + "type": "string" + }, + "ipList": { + "type": "string" + }, + "sslID": { + "type": "integer" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "appInstallID", + "domain" + ], + "type": "object" + }, + "dto.OllamaBindDomainReq": { + "properties": { + "appInstallID": { + "type": "integer" + } + }, + "required": [ + "appInstallID" + ], + "type": "object" + }, + "dto.OllamaBindDomainRes": { + "properties": { + "acmeAccountID": { + "type": "integer" + }, + "allowIPs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "connUrl": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "sslID": { + "type": "integer" + }, + "websiteID": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.OllamaModelDropList": { + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.OllamaModelName": { + "properties": { + "name": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "type": "object" + }, + "dto.Operate": { + "properties": { + "operation": { + "type": "string" + } + }, + "required": [ + "operation" + ], + "type": "object" + }, + "dto.OperateByID": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "dto.OperateByIDs": { + "properties": { + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.OperateByName": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.OperateByTaskID": { + "properties": { + "taskID": { + "type": "string" + } + }, + "type": "object" + }, + "dto.OperateByType": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "dto.OperationWithName": { + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "dto.OperationWithNameAndType": { + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "dto.Options": { + "properties": { + "option": { + "type": "string" + } + }, + "type": "object" + }, + "dto.OsInfo": { + "properties": { + "diskSize": { + "type": "integer" + }, + "kernelArch": { + "type": "string" + }, + "kernelVersion": { + "type": "string" + }, + "os": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "platformFamily": { + "type": "string" + }, + "prettyDistro": { + "type": "string" + } + }, + "type": "object" + }, + "dto.PageContainer": { + "properties": { + "excludeAppStore": { + "type": "boolean" + }, + "filters": { + "type": "string" + }, + "name": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "name", + "createdAt", + "state" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "state": { + "enum": [ + "all", + "created", + "running", + "paused", + "restarting", + "removing", + "exited", + "dead" + ], + "type": "string" + } + }, + "required": [ + "order", + "orderBy", + "page", + "pageSize", + "state" + ], + "type": "object" + }, + "dto.PageCronjob": { + "properties": { + "groupIDs": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "info": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "name", + "status", + "createdAt" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.PageImage": { + "properties": { + "name": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "size", + "tags", + "createdAt", + "isUsed" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.PageInfo": { + "properties": { + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.PageResult": { + "properties": { + "items": {}, + "total": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.PageSnapshot": { + "properties": { + "info": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "name", + "createdAt" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.PasswordUpdate": { + "properties": { + "newPassword": { + "type": "string" + }, + "oldPassword": { + "type": "string" + } + }, + "required": [ + "newPassword", + "oldPassword" + ], + "type": "object" + }, + "dto.PortHelper": { + "properties": { + "containerPort": { + "type": "string" + }, + "hostIP": { + "type": "string" + }, + "hostPort": { + "type": "string" + }, + "protocol": { + "type": "string" + } + }, + "type": "object" + }, + "dto.PortRuleOperate": { + "properties": { + "address": { + "type": "string" + }, + "chain": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "operation": { + "enum": [ + "add", + "remove" + ], + "type": "string" + }, + "port": { + "type": "string" + }, + "protocol": { + "enum": [ + "tcp", + "udp", + "tcp/udp" + ], + "type": "string" + }, + "strategy": { + "enum": [ + "accept", + "drop" + ], + "type": "string" + } + }, + "required": [ + "operation", + "port", + "protocol", + "strategy" + ], + "type": "object" + }, + "dto.PortRuleUpdate": { + "properties": { + "newRule": { + "$ref": "#/definitions/dto.PortRuleOperate" + }, + "oldRule": { + "$ref": "#/definitions/dto.PortRuleOperate" + } + }, + "type": "object" + }, + "dto.PortUpdate": { + "properties": { + "serverPort": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "serverPort" + ], + "type": "object" + }, + "dto.PostgresqlBindUser": { + "properties": { + "database": { + "type": "string" + }, + "name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "superUser": { + "type": "boolean" + }, + "username": { + "type": "string" + } + }, + "required": [ + "database", + "name", + "password", + "username" + ], + "type": "object" + }, + "dto.PostgresqlDBCreate": { + "properties": { + "database": { + "type": "string" + }, + "description": { + "type": "string" + }, + "format": { + "type": "string" + }, + "from": { + "enum": [ + "local", + "remote" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "superUser": { + "type": "boolean" + }, + "username": { + "type": "string" + } + }, + "required": [ + "database", + "from", + "name", + "password", + "username" + ], + "type": "object" + }, + "dto.PostgresqlDBDelete": { + "properties": { + "database": { + "type": "string" + }, + "deleteBackup": { + "type": "boolean" + }, + "forceDelete": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "type": { + "enum": [ + "postgresql", + "postgresql-cluster" + ], + "type": "string" + } + }, + "required": [ + "database", + "id", + "type" + ], + "type": "object" + }, + "dto.PostgresqlDBDeleteCheck": { + "properties": { + "database": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "type": { + "enum": [ + "postgresql", + "postgresql-cluster" + ], + "type": "string" + } + }, + "required": [ + "database", + "id", + "type" + ], + "type": "object" + }, + "dto.PostgresqlDBSearch": { + "properties": { + "database": { + "type": "string" + }, + "info": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "name", + "createdAt" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "database", + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.PostgresqlLoadDB": { + "properties": { + "database": { + "type": "string" + }, + "from": { + "enum": [ + "local", + "remote" + ], + "type": "string" + }, + "type": { + "enum": [ + "postgresql", + "postgresql-cluster" + ], + "type": "string" + } + }, + "required": [ + "database", + "from", + "type" + ], + "type": "object" + }, + "dto.Process": { + "properties": { + "cmd": { + "type": "string" + }, + "memory": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "percent": { + "type": "number" + }, + "pid": { + "type": "integer" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ProxyUpdate": { + "properties": { + "proxyDocker": { + "type": "boolean" + }, + "proxyPasswd": { + "type": "string" + }, + "proxyPasswdKeep": { + "type": "string" + }, + "proxyPort": { + "type": "string" + }, + "proxyType": { + "type": "string" + }, + "proxyUrl": { + "type": "string" + }, + "proxyUser": { + "type": "string" + }, + "withDockerRestart": { + "type": "boolean" + } + }, + "type": "object" + }, + "dto.QuickJump": { + "properties": { + "alias": { + "type": "string" + }, + "detail": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "isShow": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "recommend": { + "type": "integer" + }, + "router": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "dto.RecordFileSize": { + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.RecordSearch": { + "properties": { + "detailName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize", + "type" + ], + "type": "object" + }, + "dto.RecordSearchByCronjob": { + "properties": { + "cronjobID": { + "type": "integer" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "cronjobID", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.RedisConf": { + "properties": { + "containerName": { + "type": "string" + }, + "database": { + "type": "string" + }, + "maxclients": { + "type": "string" + }, + "maxmemory": { + "type": "string" + }, + "name": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "requirepass": { + "type": "string" + }, + "timeout": { + "type": "string" + } + }, + "required": [ + "database" + ], + "type": "object" + }, + "dto.RedisConfPersistenceUpdate": { + "properties": { + "appendfsync": { + "type": "string" + }, + "appendonly": { + "type": "string" + }, + "database": { + "type": "string" + }, + "dbType": { + "enum": [ + "redis", + "redis-cluster" + ], + "type": "string" + }, + "save": { + "type": "string" + }, + "type": { + "enum": [ + "aof", + "rbd" + ], + "type": "string" + } + }, + "required": [ + "database", + "dbType", + "type" + ], + "type": "object" + }, + "dto.RedisConfUpdate": { + "properties": { + "database": { + "type": "string" + }, + "dbType": { + "enum": [ + "redis", + "redis-cluster" + ], + "type": "string" + }, + "maxclients": { + "type": "string" + }, + "maxmemory": { + "type": "string" + }, + "timeout": { + "type": "string" + } + }, + "required": [ + "database", + "dbType" + ], + "type": "object" + }, + "dto.RedisPersistence": { + "properties": { + "appendfsync": { + "type": "string" + }, + "appendonly": { + "type": "string" + }, + "database": { + "type": "string" + }, + "save": { + "type": "string" + } + }, + "required": [ + "database" + ], + "type": "object" + }, + "dto.RedisStatus": { + "properties": { + "connected_clients": { + "type": "string" + }, + "database": { + "type": "string" + }, + "instantaneous_ops_per_sec": { + "type": "string" + }, + "keyspace_hits": { + "type": "string" + }, + "keyspace_misses": { + "type": "string" + }, + "latest_fork_usec": { + "type": "string" + }, + "mem_fragmentation_ratio": { + "type": "string" + }, + "tcp_port": { + "type": "string" + }, + "total_commands_processed": { + "type": "string" + }, + "total_connections_received": { + "type": "string" + }, + "uptime_in_days": { + "type": "string" + }, + "used_memory": { + "type": "string" + }, + "used_memory_peak": { + "type": "string" + }, + "used_memory_rss": { + "type": "string" + } + }, + "required": [ + "database" + ], + "type": "object" + }, + "dto.ReleasesNotes": { + "properties": { + "content": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "fixCount": { + "type": "integer" + }, + "newCount": { + "type": "integer" + }, + "optimizationCount": { + "type": "integer" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ResourceLimit": { + "properties": { + "cpu": { + "type": "integer" + }, + "memory": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.RootCertOperate": { + "properties": { + "description": { + "type": "string" + }, + "encryptionMode": { + "enum": [ + "rsa", + "ed25519", + "ecdsa", + "dsa" + ], + "type": "string" + }, + "id": { + "type": "integer" + }, + "mode": { + "type": "string" + }, + "name": { + "type": "string" + }, + "passPhrase": { + "type": "string" + }, + "privateKey": { + "type": "string" + }, + "publicKey": { + "type": "string" + } + }, + "required": [ + "encryptionMode" + ], + "type": "object" + }, + "dto.RuleSearch": { + "properties": { + "info": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "strategy": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize", + "type" + ], + "type": "object" + }, + "dto.SSHConf": { + "properties": { + "file": { + "type": "string" + } + }, + "type": "object" + }, + "dto.SSHConnData": { + "properties": { + "addr": { + "type": "string" + }, + "authMode": { + "enum": [ + "password", + "key" + ], + "type": "string" + }, + "localSSHConnShow": { + "type": "string" + }, + "passPhrase": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "privateKey": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "required": [ + "addr", + "port", + "user" + ], + "type": "object" + }, + "dto.SSHDefaultConn": { + "properties": { + "defaultConn": { + "type": "string" + }, + "withReset": { + "type": "boolean" + } + }, + "type": "object" + }, + "dto.SSHInfo": { + "properties": { + "autoStart": { + "type": "boolean" + }, + "currentUser": { + "type": "string" + }, + "isActive": { + "type": "boolean" + }, + "isExist": { + "type": "boolean" + }, + "listenAddress": { + "type": "string" + }, + "message": { + "type": "string" + }, + "passwordAuthentication": { + "type": "string" + }, + "permitRootLogin": { + "type": "string" + }, + "port": { + "type": "string" + }, + "pubkeyAuthentication": { + "type": "string" + }, + "useDNS": { + "type": "string" + } + }, + "type": "object" + }, + "dto.SSHUpdate": { + "properties": { + "key": { + "type": "string" + }, + "newValue": { + "type": "string" + }, + "oldValue": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object" + }, + "dto.SSLInfo": { + "properties": { + "cert": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "key": { + "type": "string" + }, + "rootPath": { + "type": "string" + }, + "sslID": { + "type": "integer" + }, + "timeout": { + "type": "string" + } + }, + "type": "object" + }, + "dto.SSLUpdate": { + "properties": { + "cert": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "key": { + "type": "string" + }, + "ssl": { + "enum": [ + "Enable", + "Disable", + "Mux" + ], + "type": "string" + }, + "sslID": { + "type": "integer" + }, + "sslType": { + "enum": [ + "self", + "select", + "import", + "import-paste", + "import-local" + ], + "type": "string" + } + }, + "required": [ + "ssl", + "sslType" + ], + "type": "object" + }, + "dto.ScriptOperate": { + "properties": { + "description": { + "type": "string" + }, + "groups": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "isInteractive": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "script": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ScriptOptions": { + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.SearchByFilter": { + "properties": { + "filter": { + "type": "string" + } + }, + "type": "object" + }, + "dto.SearchClamWithPage": { + "properties": { + "info": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "name", + "status", + "createdAt" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SearchForSize": { + "properties": { + "cronjobID": { + "type": "integer" + }, + "detailName": { + "type": "string" + }, + "info": { + "type": "string" + }, + "name": { + "type": "string" + }, + "order": { + "type": "string" + }, + "orderBy": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize", + "type" + ], + "type": "object" + }, + "dto.SearchForTree": { + "properties": { + "info": { + "type": "string" + } + }, + "type": "object" + }, + "dto.SearchLgLogWithPage": { + "properties": { + "ip": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "status": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SearchOpLogWithPage": { + "properties": { + "node": { + "type": "string" + }, + "operation": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "source": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SearchPageWithGroup": { + "properties": { + "groupID": { + "type": "integer" + }, + "info": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SearchPageWithType": { + "properties": { + "info": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SearchRecord": { + "properties": { + "cronjobID": { + "type": "integer" + }, + "endTime": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "startTime": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SearchSSHLog": { + "properties": { + "Status": { + "enum": [ + "Success", + "Failed", + "All" + ], + "type": "string" + }, + "info": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "Status", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SearchTaskLogReq": { + "properties": { + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SearchWithPage": { + "properties": { + "info": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SettingInfo": { + "properties": { + "appStoreLastModified": { + "type": "string" + }, + "appStoreSyncStatus": { + "type": "string" + }, + "appStoreVersion": { + "type": "string" + }, + "defaultIO": { + "type": "string" + }, + "defaultNetwork": { + "type": "string" + }, + "dockerSockPath": { + "type": "string" + }, + "fileRecycleBin": { + "type": "string" + }, + "lastCleanData": { + "type": "string" + }, + "lastCleanSize": { + "type": "string" + }, + "lastCleanTime": { + "type": "string" + }, + "localTime": { + "type": "string" + }, + "monitorInterval": { + "type": "string" + }, + "monitorStatus": { + "type": "string" + }, + "monitorStoreDays": { + "type": "string" + }, + "ntpSite": { + "type": "string" + }, + "systemIP": { + "type": "string" + }, + "systemVersion": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "dto.SettingUpdate": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object" + }, + "dto.SnapshotBatchDelete": { + "properties": { + "deleteWithFile": { + "type": "boolean" + }, + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "required": [ + "ids" + ], + "type": "object" + }, + "dto.SnapshotCreate": { + "properties": { + "appData": { + "items": { + "$ref": "#/definitions/dto.DataTree" + }, + "type": "array" + }, + "backupData": { + "items": { + "$ref": "#/definitions/dto.DataTree" + }, + "type": "array" + }, + "description": { + "maxLength": 256, + "type": "string" + }, + "downloadAccountID": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "ignoreFiles": { + "items": { + "type": "string" + }, + "type": "array" + }, + "interruptStep": { + "type": "string" + }, + "name": { + "type": "string" + }, + "panelData": { + "items": { + "$ref": "#/definitions/dto.DataTree" + }, + "type": "array" + }, + "secret": { + "type": "string" + }, + "sourceAccountIDs": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "timeout": { + "type": "integer" + }, + "withDockerConf": { + "type": "boolean" + }, + "withLoginLog": { + "type": "boolean" + }, + "withMonitorData": { + "type": "boolean" + }, + "withOperationLog": { + "type": "boolean" + }, + "withSystemLog": { + "type": "boolean" + }, + "withTaskLog": { + "type": "boolean" + } + }, + "required": [ + "downloadAccountID", + "sourceAccountIDs" + ], + "type": "object" + }, + "dto.SnapshotData": { + "properties": { + "appData": { + "items": { + "$ref": "#/definitions/dto.DataTree" + }, + "type": "array" + }, + "backupData": { + "items": { + "$ref": "#/definitions/dto.DataTree" + }, + "type": "array" + }, + "ignoreFiles": { + "items": { + "type": "string" + }, + "type": "array" + }, + "panelData": { + "items": { + "$ref": "#/definitions/dto.DataTree" + }, + "type": "array" + }, + "withDockerConf": { + "type": "boolean" + }, + "withLoginLog": { + "type": "boolean" + }, + "withMonitorData": { + "type": "boolean" + }, + "withOperationLog": { + "type": "boolean" + }, + "withSystemLog": { + "type": "boolean" + }, + "withTaskLog": { + "type": "boolean" + } + }, + "type": "object" + }, + "dto.SnapshotImport": { + "properties": { + "backupAccountID": { + "type": "integer" + }, + "description": { + "maxLength": 256, + "type": "string" + }, + "names": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.SnapshotRecover": { + "properties": { + "id": { + "type": "integer" + }, + "isNew": { + "type": "boolean" + }, + "reDownload": { + "type": "boolean" + }, + "secret": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "dto.SnapshotRule": { + "properties": { + "ignoreAppIDs": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "withImage": { + "type": "boolean" + } + }, + "type": "object" + }, + "dto.SnapshotTransHelper": { + "properties": { + "ignoreApps": { + "items": { + "$ref": "#/definitions/dto.TransHelper" + }, + "type": "array" + }, + "withImage": { + "type": "boolean" + } + }, + "type": "object" + }, + "dto.SwapHelper": { + "properties": { + "isNew": { + "type": "boolean" + }, + "path": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "taskID": { + "type": "string" + }, + "used": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "dto.SystemSetting": { + "properties": { + "isDemo": { + "type": "boolean" + }, + "isIntl": { + "type": "boolean" + }, + "language": { + "type": "string" + } + }, + "type": "object" + }, + "dto.Tag": { + "properties": { + "key": { + "type": "string" + }, + "locales": { + "$ref": "#/definitions/dto.Locale" + }, + "name": { + "type": "string" + }, + "sort": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.TerminalInfo": { + "properties": { + "cursorBlink": { + "type": "string" + }, + "cursorStyle": { + "type": "string" + }, + "fontSize": { + "type": "string" + }, + "letterSpacing": { + "type": "string" + }, + "lineHeight": { + "type": "string" + }, + "scrollSensitivity": { + "type": "string" + }, + "scrollback": { + "type": "string" + } + }, + "type": "object" + }, + "dto.TransHelper": { + "properties": { + "detailName": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.TreeChild": { + "properties": { + "id": { + "type": "integer" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "dto.UpdateByFile": { + "properties": { + "file": { + "type": "string" + } + }, + "type": "object" + }, + "dto.UpdateByNameAndFile": { + "properties": { + "file": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.UpdateDescription": { + "properties": { + "description": { + "maxLength": 256, + "type": "string" + }, + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "dto.UpdateFirewallDescription": { + "properties": { + "chain": { + "type": "string" + }, + "description": { + "type": "string" + }, + "dstIP": { + "type": "string" + }, + "dstPort": { + "type": "string" + }, + "protocol": { + "type": "string" + }, + "srcIP": { + "type": "string" + }, + "srcPort": { + "type": "string" + }, + "strategy": { + "enum": [ + "accept", + "drop" + ], + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "strategy" + ], + "type": "object" + }, + "dto.Upgrade": { + "properties": { + "version": { + "type": "string" + } + }, + "required": [ + "version" + ], + "type": "object" + }, + "dto.UpgradeInfo": { + "properties": { + "latestVersion": { + "type": "string" + }, + "newVersion": { + "type": "string" + }, + "releaseNote": { + "type": "string" + }, + "testVersion": { + "type": "string" + } + }, + "type": "object" + }, + "dto.UploadForRecover": { + "properties": { + "filePath": { + "type": "string" + }, + "targetDir": { + "type": "string" + } + }, + "type": "object" + }, + "dto.UserLoginInfo": { + "properties": { + "mfaStatus": { + "type": "string" + }, + "name": { + "type": "string" + }, + "token": { + "type": "string" + } + }, + "type": "object" + }, + "dto.VolumeCreate": { + "properties": { + "driver": { + "type": "string" + }, + "labels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "options": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "driver", + "name" + ], + "type": "object" + }, + "dto.VolumeHelper": { + "properties": { + "containerDir": { + "type": "string" + }, + "mode": { + "type": "string" + }, + "shared": { + "type": "string" + }, + "sourceDir": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "dto.XPUInfo": { + "properties": { + "deviceID": { + "type": "integer" + }, + "deviceName": { + "type": "string" + }, + "memory": { + "type": "string" + }, + "memoryUsed": { + "type": "string" + }, + "memoryUtil": { + "type": "string" + }, + "power": { + "type": "string" + }, + "temperature": { + "type": "string" + } + }, + "type": "object" + }, + "files.FileInfo": { + "properties": { + "content": { + "type": "string" + }, + "extension": { + "type": "string" + }, + "favoriteID": { + "type": "integer" + }, + "gid": { + "type": "string" + }, + "group": { + "type": "string" + }, + "isDetail": { + "type": "boolean" + }, + "isDir": { + "type": "boolean" + }, + "isHidden": { + "type": "boolean" + }, + "isSymlink": { + "type": "boolean" + }, + "itemTotal": { + "type": "integer" + }, + "items": { + "items": { + "$ref": "#/definitions/files.FileInfo" + }, + "type": "array" + }, + "linkPath": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "modTime": { + "type": "string" + }, + "mode": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "updateTime": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "mfa.Otp": { + "properties": { + "qrImage": { + "type": "string" + }, + "secret": { + "type": "string" + } + }, + "type": "object" + }, + "model.App": { + "properties": { + "architectures": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "crossVersionUpdate": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "document": { + "type": "string" + }, + "github": { + "type": "string" + }, + "gpuSupport": { + "type": "boolean" + }, + "icon": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "lastModified": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "memoryRequired": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "readMe": { + "type": "string" + }, + "recommend": { + "type": "integer" + }, + "required": { + "type": "string" + }, + "requiredPanelVersion": { + "type": "number" + }, + "resource": { + "type": "string" + }, + "shortDescEn": { + "type": "string" + }, + "shortDescZh": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "website": { + "type": "string" + } + }, + "type": "object" + }, + "model.AppIgnoreUpgrade": { + "properties": { + "appDetailID": { + "type": "integer" + }, + "appID": { + "type": "integer" + }, + "createdAt": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "scope": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "type": "object" + }, + "model.AppInstall": { + "properties": { + "app": { + "$ref": "#/definitions/model.App" + }, + "appDetailId": { + "type": "integer" + }, + "appId": { + "type": "integer" + }, + "containerName": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "description": { + "type": "string" + }, + "dockerCompose": { + "type": "string" + }, + "env": { + "type": "string" + }, + "favorite": { + "type": "boolean" + }, + "httpPort": { + "type": "integer" + }, + "httpsPort": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "param": { + "type": "string" + }, + "serviceName": { + "type": "string" + }, + "status": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "version": { + "type": "string" + }, + "webUI": { + "type": "string" + } + }, + "type": "object" + }, + "model.Favorite": { + "properties": { + "createdAt": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "isDir": { + "type": "boolean" + }, + "isTxt": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "type": "object" + }, + "model.Runtime": { + "properties": { + "appDetailID": { + "type": "integer" + }, + "codeDir": { + "type": "string" + }, + "containerName": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "dockerCompose": { + "type": "string" + }, + "env": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "image": { + "type": "string" + }, + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "params": { + "type": "string" + }, + "port": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "resource": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "version": { + "type": "string" + }, + "workDir": { + "type": "string" + } + }, + "type": "object" + }, + "model.Website": { + "properties": { + "IPV6": { + "type": "boolean" + }, + "accessLog": { + "type": "boolean" + }, + "alias": { + "type": "string" + }, + "appInstallId": { + "type": "integer" + }, + "createdAt": { + "type": "string" + }, + "dbID": { + "type": "integer" + }, + "dbType": { + "type": "string" + }, + "defaultServer": { + "type": "boolean" + }, + "domains": { + "items": { + "$ref": "#/definitions/model.WebsiteDomain" + }, + "type": "array" + }, + "errorLog": { + "type": "boolean" + }, + "expireDate": { + "type": "string" + }, + "favorite": { + "type": "boolean" + }, + "ftpId": { + "type": "integer" + }, + "group": { + "type": "string" + }, + "httpConfig": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "parentWebsiteID": { + "type": "integer" + }, + "primaryDomain": { + "type": "string" + }, + "protocol": { + "type": "string" + }, + "proxy": { + "type": "string" + }, + "proxyType": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "rewrite": { + "type": "string" + }, + "runtimeID": { + "type": "integer" + }, + "siteDir": { + "type": "string" + }, + "status": { + "type": "string" + }, + "streamPorts": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "user": { + "type": "string" + }, + "webSiteGroupId": { + "type": "integer" + }, + "webSiteSSL": { + "$ref": "#/definitions/model.WebsiteSSL" + }, + "webSiteSSLId": { + "type": "integer" + } + }, + "type": "object" + }, + "model.WebsiteAcmeAccount": { + "properties": { + "caDirURL": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "eabHmacKey": { + "type": "string" + }, + "eabKid": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "keyType": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "url": { + "type": "string" + }, + "useProxy": { + "type": "boolean" + } + }, + "type": "object" + }, + "model.WebsiteDnsAccount": { + "properties": { + "createdAt": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "type": "object" + }, + "model.WebsiteDomain": { + "properties": { + "createdAt": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "port": { + "type": "integer" + }, + "ssl": { + "type": "boolean" + }, + "updatedAt": { + "type": "string" + }, + "websiteId": { + "type": "integer" + } + }, + "type": "object" + }, + "model.WebsiteSSL": { + "properties": { + "acmeAccount": { + "$ref": "#/definitions/model.WebsiteAcmeAccount" + }, + "acmeAccountId": { + "type": "integer" + }, + "autoRenew": { + "type": "boolean" + }, + "caId": { + "type": "integer" + }, + "certPath": { + "type": "string" + }, + "certURL": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "description": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "disableCNAME": { + "type": "boolean" + }, + "dnsAccount": { + "$ref": "#/definitions/model.WebsiteDnsAccount" + }, + "dnsAccountId": { + "type": "integer" + }, + "domains": { + "type": "string" + }, + "execShell": { + "type": "boolean" + }, + "expireDate": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "isIP": { + "type": "boolean" + }, + "keyType": { + "type": "string" + }, + "masterSslId": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "nameserver1": { + "type": "string" + }, + "nameserver2": { + "type": "string" + }, + "nodes": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "pem": { + "type": "string" + }, + "primaryDomain": { + "type": "string" + }, + "privateKey": { + "type": "string" + }, + "privateKeyPath": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "pushDir": { + "type": "boolean" + }, + "pushNode": { + "type": "boolean" + }, + "shell": { + "type": "string" + }, + "skipDNS": { + "type": "boolean" + }, + "startDate": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "websites": { + "items": { + "$ref": "#/definitions/model.Website" + }, + "type": "array" + } + }, + "type": "object" + }, + "request.AppConfigUpdate": { + "properties": { + "installID": { + "type": "integer" + }, + "webUI": { + "type": "string" + } + }, + "required": [ + "installID" + ], + "type": "object" + }, + "request.AppIgnoreUpgradeReq": { + "properties": { + "appDetailID": { + "type": "integer" + }, + "appID": { + "type": "integer" + }, + "scope": { + "enum": [ + "all", + "version" + ], + "type": "string" + } + }, + "required": [ + "appID", + "scope" + ], + "type": "object" + }, + "request.AppInstallCreate": { + "properties": { + "advanced": { + "type": "boolean" + }, + "allowPort": { + "type": "boolean" + }, + "appDetailId": { + "type": "integer" + }, + "containerName": { + "type": "string" + }, + "cpuQuota": { + "type": "number" + }, + "dockerCompose": { + "type": "string" + }, + "editCompose": { + "type": "boolean" + }, + "gpuConfig": { + "type": "boolean" + }, + "hostMode": { + "type": "boolean" + }, + "memoryLimit": { + "type": "number" + }, + "memoryUnit": { + "type": "string" + }, + "name": { + "type": "string" + }, + "params": { + "additionalProperties": true, + "type": "object" + }, + "pullImage": { + "type": "boolean" + }, + "restartPolicy": { + "enum": [ + "always", + "unless-stopped", + "no", + "on-failure" + ], + "type": "string" + }, + "services": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "specifyIP": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "type": { + "type": "string" + }, + "webUI": { + "type": "string" + } + }, + "required": [ + "appDetailId", + "name" + ], + "type": "object" + }, + "request.AppInstalledInfo": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object" + }, + "request.AppInstalledOperate": { + "properties": { + "backup": { + "type": "boolean" + }, + "backupId": { + "type": "integer" + }, + "deleteBackup": { + "type": "boolean" + }, + "deleteDB": { + "type": "boolean" + }, + "deleteImage": { + "type": "boolean" + }, + "detailId": { + "type": "integer" + }, + "dockerCompose": { + "type": "string" + }, + "favorite": { + "type": "boolean" + }, + "forceDelete": { + "type": "boolean" + }, + "installId": { + "type": "integer" + }, + "operate": { + "type": "string" + }, + "pullImage": { + "type": "boolean" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "installId", + "operate" + ], + "type": "object" + }, + "request.AppInstalledSearch": { + "properties": { + "all": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "sync": { + "type": "boolean" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "unused": { + "type": "boolean" + }, + "update": { + "type": "boolean" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "request.AppInstalledUpdate": { + "properties": { + "advanced": { + "type": "boolean" + }, + "allowPort": { + "type": "boolean" + }, + "containerName": { + "type": "string" + }, + "cpuQuota": { + "type": "number" + }, + "dockerCompose": { + "type": "string" + }, + "editCompose": { + "type": "boolean" + }, + "gpuConfig": { + "type": "boolean" + }, + "hostMode": { + "type": "boolean" + }, + "installId": { + "type": "integer" + }, + "memoryLimit": { + "type": "number" + }, + "memoryUnit": { + "type": "string" + }, + "params": { + "additionalProperties": true, + "type": "object" + }, + "pullImage": { + "type": "boolean" + }, + "restartPolicy": { + "enum": [ + "always", + "unless-stopped", + "no", + "on-failure" + ], + "type": "string" + }, + "specifyIP": { + "type": "string" + }, + "type": { + "type": "string" + }, + "webUI": { + "type": "string" + } + }, + "required": [ + "installId", + "params" + ], + "type": "object" + }, + "request.AppSearch": { + "properties": { + "name": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "recommend": { + "type": "boolean" + }, + "resource": { + "type": "string" + }, + "showCurrentArch": { + "type": "boolean" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "request.BatchWebsiteGroup": { + "properties": { + "groupID": { + "type": "integer" + }, + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "required": [ + "groupID", + "ids" + ], + "type": "object" + }, + "request.BatchWebsiteHttps": { + "properties": { + "SSLProtocol": { + "items": { + "type": "string" + }, + "type": "array" + }, + "algorithm": { + "type": "string" + }, + "certificate": { + "type": "string" + }, + "certificatePath": { + "type": "string" + }, + "hsts": { + "type": "boolean" + }, + "hstsIncludeSubDomains": { + "type": "boolean" + }, + "http3": { + "type": "boolean" + }, + "httpConfig": { + "enum": [ + "HTTPSOnly", + "HTTPAlso", + "HTTPToHTTPS" + ], + "type": "string" + }, + "httpsPorts": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "importType": { + "type": "string" + }, + "privateKey": { + "type": "string" + }, + "privateKeyPath": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "type": { + "enum": [ + "existed", + "auto", + "manual" + ], + "type": "string" + }, + "websiteSSLId": { + "type": "integer" + } + }, + "required": [ + "ids", + "taskID" + ], + "type": "object" + }, + "request.BatchWebsiteOp": { + "properties": { + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "operate": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "ids", + "operate", + "taskID" + ], + "type": "object" + }, + "request.ChangeDatabase": { + "properties": { + "databaseID": { + "type": "integer" + }, + "databaseType": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.CorsConfig": { + "properties": { + "allowCredentials": { + "type": "boolean" + }, + "allowHeaders": { + "type": "string" + }, + "allowMethods": { + "type": "string" + }, + "allowOrigins": { + "type": "string" + }, + "cors": { + "type": "boolean" + }, + "preflight": { + "type": "boolean" + } + }, + "type": "object" + }, + "request.CorsConfigReq": { + "properties": { + "allowCredentials": { + "type": "boolean" + }, + "allowHeaders": { + "type": "string" + }, + "allowMethods": { + "type": "string" + }, + "allowOrigins": { + "type": "string" + }, + "cors": { + "type": "boolean" + }, + "preflight": { + "type": "boolean" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.CrossSiteAccessOp": { + "properties": { + "operation": { + "enum": [ + "Enable", + "Disable" + ], + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "operation", + "websiteID" + ], + "type": "object" + }, + "request.CustomRewriteOperate": { + "properties": { + "content": { + "type": "string" + }, + "name": { + "type": "string" + }, + "operate": { + "enum": [ + "create", + "delete" + ], + "type": "string" + } + }, + "required": [ + "operate" + ], + "type": "object" + }, + "request.DirSizeReq": { + "properties": { + "path": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "request.DiskMountRequest": { + "properties": { + "autoMount": { + "type": "boolean" + }, + "device": { + "type": "string" + }, + "filesystem": { + "enum": [ + "ext4", + "xfs" + ], + "type": "string" + }, + "mountPoint": { + "type": "string" + }, + "noFail": { + "type": "boolean" + } + }, + "required": [ + "device", + "filesystem", + "mountPoint" + ], + "type": "object" + }, + "request.DiskPartitionRequest": { + "properties": { + "autoMount": { + "type": "boolean" + }, + "device": { + "type": "string" + }, + "filesystem": { + "enum": [ + "ext4", + "xfs" + ], + "type": "string" + }, + "label": { + "type": "string" + }, + "mountPoint": { + "type": "string" + } + }, + "required": [ + "device", + "filesystem", + "mountPoint" + ], + "type": "object" + }, + "request.DiskUnmountRequest": { + "properties": { + "mountPoint": { + "type": "string" + } + }, + "required": [ + "mountPoint" + ], + "type": "object" + }, + "request.Environment": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "request.ExecComposerReq": { + "properties": { + "command": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "extCommand": { + "type": "string" + }, + "mirror": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "user": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "command", + "dir", + "mirror", + "taskID", + "user", + "websiteID" + ], + "type": "object" + }, + "request.ExposedPort": { + "properties": { + "containerPort": { + "type": "integer" + }, + "hostIP": { + "type": "string" + }, + "hostPort": { + "type": "integer" + } + }, + "type": "object" + }, + "request.ExtraHost": { + "properties": { + "hostname": { + "type": "string" + }, + "ip": { + "type": "string" + } + }, + "type": "object" + }, + "request.FPMConfig": { + "properties": { + "id": { + "type": "integer" + }, + "params": { + "additionalProperties": true, + "type": "object" + } + }, + "required": [ + "id", + "params" + ], + "type": "object" + }, + "request.FavoriteCreate": { + "properties": { + "path": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "request.FavoriteDelete": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.FileBatchDelete": { + "properties": { + "isDir": { + "type": "boolean" + }, + "paths": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "paths" + ], + "type": "object" + }, + "request.FileCompress": { + "properties": { + "dst": { + "type": "string" + }, + "files": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "replace": { + "type": "boolean" + }, + "secret": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "dst", + "files", + "name", + "type" + ], + "type": "object" + }, + "request.FileContentReq": { + "properties": { + "isDetail": { + "type": "boolean" + }, + "path": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "request.FileConvert": { + "properties": { + "extension": { + "type": "string" + }, + "inputFile": { + "type": "string" + }, + "outputFormat": { + "type": "string" + }, + "path": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "extension", + "inputFile", + "outputFormat", + "path", + "type" + ], + "type": "object" + }, + "request.FileCreate": { + "properties": { + "content": { + "type": "string" + }, + "isDir": { + "type": "boolean" + }, + "isLink": { + "type": "boolean" + }, + "isSymlink": { + "type": "boolean" + }, + "linkPath": { + "type": "string" + }, + "mode": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "sub": { + "type": "boolean" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "request.FileDeCompress": { + "properties": { + "dst": { + "type": "string" + }, + "path": { + "type": "string" + }, + "secret": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "dst", + "path", + "type" + ], + "type": "object" + }, + "request.FileDelete": { + "properties": { + "forceDelete": { + "type": "boolean" + }, + "isDir": { + "type": "boolean" + }, + "path": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "request.FileDownload": { + "properties": { + "compress": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "paths": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name", + "paths", + "type" + ], + "type": "object" + }, + "request.FileEdit": { + "properties": { + "content": { + "type": "string" + }, + "path": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "request.FileMove": { + "properties": { + "cover": { + "type": "boolean" + }, + "coverPaths": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "newPath": { + "type": "string" + }, + "oldPaths": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + } + }, + "required": [ + "newPath", + "oldPaths", + "type" + ], + "type": "object" + }, + "request.FileOption": { + "properties": { + "containSub": { + "type": "boolean" + }, + "dir": { + "type": "boolean" + }, + "expand": { + "type": "boolean" + }, + "isDetail": { + "type": "boolean" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "search": { + "type": "string" + }, + "showHidden": { + "type": "boolean" + }, + "sortBy": { + "type": "string" + }, + "sortOrder": { + "type": "string" + } + }, + "type": "object" + }, + "request.FilePathCheck": { + "properties": { + "path": { + "type": "string" + }, + "withInit": { + "type": "boolean" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "request.FilePathsCheck": { + "properties": { + "paths": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "paths" + ], + "type": "object" + }, + "request.FileReadByLineReq": { + "properties": { + "ID": { + "type": "integer" + }, + "latest": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "resourceID": { + "type": "integer" + }, + "taskID": { + "type": "string" + }, + "taskOperate": { + "type": "string" + }, + "taskType": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize", + "type" + ], + "type": "object" + }, + "request.FileRename": { + "properties": { + "newName": { + "type": "string" + }, + "oldName": { + "type": "string" + } + }, + "required": [ + "newName", + "oldName" + ], + "type": "object" + }, + "request.FileRoleReq": { + "properties": { + "group": { + "type": "string" + }, + "mode": { + "type": "integer" + }, + "paths": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sub": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "required": [ + "group", + "mode", + "paths", + "user" + ], + "type": "object" + }, + "request.FileRoleUpdate": { + "properties": { + "group": { + "type": "string" + }, + "path": { + "type": "string" + }, + "sub": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "required": [ + "group", + "path", + "user" + ], + "type": "object" + }, + "request.FileWget": { + "properties": { + "ignoreCertificate": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "name", + "path", + "url" + ], + "type": "object" + }, + "request.HostToolConfig": { + "properties": { + "content": { + "type": "string" + }, + "operate": { + "enum": [ + "get", + "set" + ], + "type": "string" + }, + "type": { + "enum": [ + "supervisord" + ], + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "request.HostToolCreate": { + "properties": { + "configPath": { + "type": "string" + }, + "serviceName": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "request.HostToolReq": { + "properties": { + "operate": { + "enum": [ + "status", + "restart", + "start", + "stop" + ], + "type": "string" + }, + "type": { + "enum": [ + "supervisord" + ], + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "request.McpBindDomain": { + "properties": { + "domain": { + "type": "string" + }, + "ipList": { + "type": "string" + }, + "sslID": { + "type": "integer" + } + }, + "required": [ + "domain" + ], + "type": "object" + }, + "request.McpBindDomainUpdate": { + "properties": { + "ipList": { + "type": "string" + }, + "sslID": { + "type": "integer" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.McpServerCreate": { + "properties": { + "baseUrl": { + "type": "string" + }, + "command": { + "type": "string" + }, + "containerName": { + "type": "string" + }, + "environments": { + "items": { + "$ref": "#/definitions/request.Environment" + }, + "type": "array" + }, + "hostIP": { + "type": "string" + }, + "name": { + "type": "string" + }, + "outputTransport": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "ssePath": { + "type": "string" + }, + "streamableHttpPath": { + "type": "string" + }, + "type": { + "type": "string" + }, + "volumes": { + "items": { + "$ref": "#/definitions/request.Volume" + }, + "type": "array" + } + }, + "required": [ + "command", + "name", + "outputTransport", + "port", + "type" + ], + "type": "object" + }, + "request.McpServerDelete": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.McpServerOperate": { + "properties": { + "id": { + "type": "integer" + }, + "operate": { + "type": "string" + } + }, + "required": [ + "id", + "operate" + ], + "type": "object" + }, + "request.McpServerSearch": { + "properties": { + "name": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "sync": { + "type": "boolean" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "request.McpServerUpdate": { + "properties": { + "baseUrl": { + "type": "string" + }, + "command": { + "type": "string" + }, + "containerName": { + "type": "string" + }, + "environments": { + "items": { + "$ref": "#/definitions/request.Environment" + }, + "type": "array" + }, + "hostIP": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "outputTransport": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "ssePath": { + "type": "string" + }, + "streamableHttpPath": { + "type": "string" + }, + "type": { + "type": "string" + }, + "volumes": { + "items": { + "$ref": "#/definitions/request.Volume" + }, + "type": "array" + } + }, + "required": [ + "command", + "id", + "name", + "outputTransport", + "port", + "type" + ], + "type": "object" + }, + "request.NewAppInstall": { + "properties": { + "advanced": { + "type": "boolean" + }, + "allowPort": { + "type": "boolean" + }, + "appDetailID": { + "type": "integer" + }, + "containerName": { + "type": "string" + }, + "cpuQuota": { + "type": "number" + }, + "dockerCompose": { + "type": "string" + }, + "editCompose": { + "type": "boolean" + }, + "gpuConfig": { + "type": "boolean" + }, + "hostMode": { + "type": "boolean" + }, + "memoryLimit": { + "type": "number" + }, + "memoryUnit": { + "type": "string" + }, + "name": { + "type": "string" + }, + "params": { + "additionalProperties": true, + "type": "object" + }, + "pullImage": { + "type": "boolean" + }, + "restartPolicy": { + "enum": [ + "always", + "unless-stopped", + "no", + "on-failure" + ], + "type": "string" + }, + "specifyIP": { + "type": "string" + }, + "type": { + "type": "string" + }, + "webUI": { + "type": "string" + } + }, + "type": "object" + }, + "request.NginxAntiLeechUpdate": { + "properties": { + "blocked": { + "type": "boolean" + }, + "cache": { + "type": "boolean" + }, + "cacheTime": { + "type": "integer" + }, + "cacheUint": { + "type": "string" + }, + "enable": { + "type": "boolean" + }, + "extends": { + "type": "string" + }, + "logEnable": { + "type": "boolean" + }, + "noneRef": { + "type": "boolean" + }, + "return": { + "type": "string" + }, + "serverNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.NginxAuthReq": { + "properties": { + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.NginxAuthUpdate": { + "properties": { + "operate": { + "type": "string" + }, + "password": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "username": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "operate", + "websiteID" + ], + "type": "object" + }, + "request.NginxBuildReq": { + "properties": { + "mirror": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "mirror", + "taskID" + ], + "type": "object" + }, + "request.NginxCommonReq": { + "properties": { + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.NginxConfigFileUpdate": { + "properties": { + "backup": { + "type": "boolean" + }, + "content": { + "type": "string" + } + }, + "required": [ + "content" + ], + "type": "object" + }, + "request.NginxConfigUpdate": { + "properties": { + "operate": { + "enum": [ + "add", + "update", + "delete" + ], + "type": "string" + }, + "params": {}, + "scope": { + "$ref": "#/definitions/dto.NginxKey" + }, + "websiteId": { + "type": "integer" + } + }, + "required": [ + "operate" + ], + "type": "object" + }, + "request.NginxDefaultHTTPSUpdate": { + "properties": { + "operate": { + "enum": [ + "enable", + "disable" + ], + "type": "string" + }, + "sslRejectHandshake": { + "type": "boolean" + } + }, + "required": [ + "operate" + ], + "type": "object" + }, + "request.NginxModuleUpdate": { + "properties": { + "enable": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "operate": { + "enum": [ + "create", + "delete", + "update" + ], + "type": "string" + }, + "packages": { + "type": "string" + }, + "params": { + "type": "string" + }, + "script": { + "type": "string" + } + }, + "required": [ + "name", + "operate" + ], + "type": "object" + }, + "request.NginxPathAuthUpdate": { + "properties": { + "name": { + "type": "string" + }, + "operate": { + "type": "string" + }, + "password": { + "type": "string" + }, + "path": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "username": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "operate", + "websiteID" + ], + "type": "object" + }, + "request.NginxProxyCacheUpdate": { + "properties": { + "cacheExpire": { + "type": "integer" + }, + "cacheExpireUnit": { + "type": "string" + }, + "cacheLimit": { + "type": "integer" + }, + "cacheLimitUnit": { + "type": "string" + }, + "open": { + "type": "boolean" + }, + "shareCache": { + "type": "integer" + }, + "shareCacheUnit": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "cacheExpire", + "cacheExpireUnit", + "cacheLimit", + "cacheLimitUnit", + "shareCache", + "shareCacheUnit", + "websiteID" + ], + "type": "object" + }, + "request.NginxProxyUpdate": { + "properties": { + "content": { + "type": "string" + }, + "name": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "content", + "name", + "websiteID" + ], + "type": "object" + }, + "request.NginxRedirectReq": { + "properties": { + "domains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "enable": { + "type": "boolean" + }, + "keepPath": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "operate": { + "type": "string" + }, + "path": { + "type": "string" + }, + "redirect": { + "type": "string" + }, + "redirectRoot": { + "type": "boolean" + }, + "target": { + "type": "string" + }, + "type": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "name", + "operate", + "redirect", + "target", + "type", + "websiteID" + ], + "type": "object" + }, + "request.NginxRedirectUpdate": { + "properties": { + "content": { + "type": "string" + }, + "name": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "content", + "name", + "websiteID" + ], + "type": "object" + }, + "request.NginxRewriteReq": { + "properties": { + "name": { + "type": "string" + }, + "websiteId": { + "type": "integer" + } + }, + "required": [ + "name", + "websiteId" + ], + "type": "object" + }, + "request.NginxRewriteUpdate": { + "properties": { + "content": { + "type": "string" + }, + "name": { + "type": "string" + }, + "websiteId": { + "type": "integer" + } + }, + "required": [ + "name", + "websiteId" + ], + "type": "object" + }, + "request.NginxScopeReq": { + "properties": { + "scope": { + "$ref": "#/definitions/dto.NginxKey" + }, + "websiteId": { + "type": "integer" + } + }, + "required": [ + "scope" + ], + "type": "object" + }, + "request.NodeModuleReq": { + "properties": { + "ID": { + "type": "integer" + } + }, + "required": [ + "ID" + ], + "type": "object" + }, + "request.NodePackageReq": { + "properties": { + "codeDir": { + "type": "string" + } + }, + "type": "object" + }, + "request.PHPConfigUpdate": { + "properties": { + "disableFunctions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "type": "integer" + }, + "maxExecutionTime": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "scope": { + "type": "string" + }, + "uploadMaxSize": { + "type": "string" + } + }, + "required": [ + "id", + "scope" + ], + "type": "object" + }, + "request.PHPContainerConfig": { + "properties": { + "containerName": { + "type": "string" + }, + "environments": { + "items": { + "$ref": "#/definitions/request.Environment" + }, + "type": "array" + }, + "exposedPorts": { + "items": { + "$ref": "#/definitions/request.ExposedPort" + }, + "type": "array" + }, + "extraHosts": { + "items": { + "$ref": "#/definitions/request.ExtraHost" + }, + "type": "array" + }, + "id": { + "type": "integer" + }, + "volumes": { + "items": { + "$ref": "#/definitions/request.Volume" + }, + "type": "array" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.PHPExtensionInstallReq": { + "properties": { + "ID": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "ID", + "name" + ], + "type": "object" + }, + "request.PHPExtensionsCreate": { + "properties": { + "extensions": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "extensions", + "name" + ], + "type": "object" + }, + "request.PHPExtensionsDelete": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.PHPExtensionsSearch": { + "properties": { + "all": { + "type": "boolean" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "request.PHPExtensionsUpdate": { + "properties": { + "extensions": { + "type": "string" + }, + "id": { + "type": "integer" + } + }, + "required": [ + "extensions", + "id" + ], + "type": "object" + }, + "request.PHPFileReq": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "request.PHPFileUpdate": { + "properties": { + "content": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "required": [ + "content", + "id", + "type" + ], + "type": "object" + }, + "request.PHPSupervisorProcessConfig": { + "properties": { + "autoRestart": { + "type": "string" + }, + "autoStart": { + "type": "string" + }, + "command": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "environment": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "numprocs": { + "type": "string" + }, + "operate": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.PHPSupervisorProcessFileReq": { + "properties": { + "content": { + "type": "string" + }, + "file": { + "enum": [ + "out.log", + "err.log", + "config" + ], + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "operate": { + "enum": [ + "get", + "clear", + "update" + ], + "type": "string" + } + }, + "required": [ + "file", + "id", + "name", + "operate" + ], + "type": "object" + }, + "request.PortUpdate": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "port": { + "type": "integer" + } + }, + "type": "object" + }, + "request.ProcessReq": { + "properties": { + "PID": { + "type": "integer" + } + }, + "required": [ + "PID" + ], + "type": "object" + }, + "request.RecycleBinReduce": { + "properties": { + "from": { + "type": "string" + }, + "name": { + "type": "string" + }, + "rName": { + "type": "string" + } + }, + "required": [ + "from", + "rName" + ], + "type": "object" + }, + "request.ReqWithID": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.RuntimeCreate": { + "properties": { + "appDetailId": { + "type": "integer" + }, + "clean": { + "type": "boolean" + }, + "codeDir": { + "type": "string" + }, + "environments": { + "items": { + "$ref": "#/definitions/request.Environment" + }, + "type": "array" + }, + "exposedPorts": { + "items": { + "$ref": "#/definitions/request.ExposedPort" + }, + "type": "array" + }, + "extraHosts": { + "items": { + "$ref": "#/definitions/request.ExtraHost" + }, + "type": "array" + }, + "image": { + "type": "string" + }, + "install": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "params": { + "additionalProperties": true, + "type": "object" + }, + "remark": { + "type": "string" + }, + "resource": { + "type": "string" + }, + "source": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "volumes": { + "items": { + "$ref": "#/definitions/request.Volume" + }, + "type": "array" + } + }, + "type": "object" + }, + "request.RuntimeDelete": { + "properties": { + "forceDelete": { + "type": "boolean" + }, + "id": { + "type": "integer" + } + }, + "type": "object" + }, + "request.RuntimeOperate": { + "properties": { + "ID": { + "type": "integer" + }, + "operate": { + "type": "string" + } + }, + "type": "object" + }, + "request.RuntimeRemark": { + "properties": { + "id": { + "type": "integer" + }, + "remark": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.RuntimeSearch": { + "properties": { + "name": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "request.RuntimeUpdate": { + "properties": { + "clean": { + "type": "boolean" + }, + "codeDir": { + "type": "string" + }, + "environments": { + "items": { + "$ref": "#/definitions/request.Environment" + }, + "type": "array" + }, + "exposedPorts": { + "items": { + "$ref": "#/definitions/request.ExposedPort" + }, + "type": "array" + }, + "extraHosts": { + "items": { + "$ref": "#/definitions/request.ExtraHost" + }, + "type": "array" + }, + "id": { + "type": "integer" + }, + "image": { + "type": "string" + }, + "install": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "params": { + "additionalProperties": true, + "type": "object" + }, + "rebuild": { + "type": "boolean" + }, + "remark": { + "type": "string" + }, + "source": { + "type": "string" + }, + "version": { + "type": "string" + }, + "volumes": { + "items": { + "$ref": "#/definitions/request.Volume" + }, + "type": "array" + } + }, + "type": "object" + }, + "request.SearchUploadWithPage": { + "properties": { + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "path": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize", + "path" + ], + "type": "object" + }, + "request.StreamUpdate": { + "properties": { + "algorithm": { + "type": "string" + }, + "name": { + "type": "string" + }, + "servers": { + "items": { + "$ref": "#/definitions/dto.NginxUpstreamServer" + }, + "type": "array" + }, + "streamPorts": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.SupervisorProcessConfig": { + "properties": { + "autoRestart": { + "type": "string" + }, + "autoStart": { + "type": "string" + }, + "command": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "environment": { + "type": "string" + }, + "name": { + "type": "string" + }, + "numprocs": { + "type": "string" + }, + "operate": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "request.SupervisorProcessFileReq": { + "properties": { + "content": { + "type": "string" + }, + "file": { + "enum": [ + "out.log", + "err.log", + "config" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "operate": { + "enum": [ + "get", + "clear", + "update" + ], + "type": "string" + } + }, + "required": [ + "file", + "name", + "operate" + ], + "type": "object" + }, + "request.Volume": { + "properties": { + "source": { + "type": "string" + }, + "target": { + "type": "string" + } + }, + "type": "object" + }, + "request.WebsiteAcmeAccountCreate": { + "properties": { + "caDirURL": { + "type": "string" + }, + "eabHmacKey": { + "type": "string" + }, + "eabKid": { + "type": "string" + }, + "email": { + "type": "string" + }, + "keyType": { + "enum": [ + "P256", + "P384", + "2048", + "3072", + "4096", + "8192" + ], + "type": "string" + }, + "type": { + "enum": [ + "letsencrypt", + "zerossl", + "buypass", + "google", + "custom" + ], + "type": "string" + }, + "useProxy": { + "type": "boolean" + } + }, + "required": [ + "email", + "keyType", + "type" + ], + "type": "object" + }, + "request.WebsiteAcmeAccountUpdate": { + "properties": { + "id": { + "type": "integer" + }, + "useProxy": { + "type": "boolean" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.WebsiteBatchDelReq": { + "properties": { + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "required": [ + "ids" + ], + "type": "object" + }, + "request.WebsiteCACreate": { + "properties": { + "city": { + "type": "string" + }, + "commonName": { + "type": "string" + }, + "country": { + "type": "string" + }, + "keyType": { + "enum": [ + "P256", + "P384", + "2048", + "3072", + "4096", + "8192" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "organizationUint": { + "type": "string" + }, + "province": { + "type": "string" + } + }, + "required": [ + "commonName", + "country", + "keyType", + "name", + "organization" + ], + "type": "object" + }, + "request.WebsiteCAObtain": { + "properties": { + "autoRenew": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "domains": { + "type": "string" + }, + "execShell": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "keyType": { + "enum": [ + "P256", + "P384", + "2048", + "3072", + "4096", + "8192" + ], + "type": "string" + }, + "pushDir": { + "type": "boolean" + }, + "renew": { + "type": "boolean" + }, + "shell": { + "type": "string" + }, + "sslID": { + "type": "integer" + }, + "time": { + "type": "integer" + }, + "unit": { + "type": "string" + } + }, + "required": [ + "domains", + "id", + "keyType", + "time", + "unit" + ], + "type": "object" + }, + "request.WebsiteCASearch": { + "properties": { + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "request.WebsiteCommonReq": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.WebsiteCreate": { + "properties": { + "IPV6": { + "type": "boolean" + }, + "algorithm": { + "type": "string" + }, + "alias": { + "type": "string" + }, + "appID": { + "type": "integer" + }, + "appInstall": { + "$ref": "#/definitions/request.NewAppInstall" + }, + "appInstallID": { + "type": "integer" + }, + "appType": { + "enum": [ + "new", + "installed" + ], + "type": "string" + }, + "createDb": { + "type": "boolean" + }, + "dbFormat": { + "type": "string" + }, + "dbHost": { + "type": "string" + }, + "dbName": { + "type": "string" + }, + "dbPassword": { + "type": "string" + }, + "dbUser": { + "type": "string" + }, + "domains": { + "items": { + "$ref": "#/definitions/request.WebsiteDomain" + }, + "type": "array" + }, + "enableSSL": { + "type": "boolean" + }, + "ftpPassword": { + "type": "string" + }, + "ftpUser": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parentWebsiteID": { + "type": "integer" + }, + "port": { + "type": "integer" + }, + "proxy": { + "type": "string" + }, + "proxyType": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "runtimeID": { + "type": "integer" + }, + "servers": { + "items": { + "$ref": "#/definitions/dto.NginxUpstreamServer" + }, + "type": "array" + }, + "siteDir": { + "type": "string" + }, + "streamPorts": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "type": { + "type": "string" + }, + "webSiteGroupID": { + "type": "integer" + }, + "websiteSSLID": { + "type": "integer" + } + }, + "required": [ + "alias", + "type", + "webSiteGroupID" + ], + "type": "object" + }, + "request.WebsiteDNSReq": { + "properties": { + "acmeAccountId": { + "type": "integer" + }, + "websiteSSLId": { + "type": "integer" + } + }, + "required": [ + "acmeAccountId", + "websiteSSLId" + ], + "type": "object" + }, + "request.WebsiteDefaultUpdate": { + "properties": { + "id": { + "type": "integer" + } + }, + "type": "object" + }, + "request.WebsiteDelete": { + "properties": { + "deleteApp": { + "type": "boolean" + }, + "deleteBackup": { + "type": "boolean" + }, + "deleteDB": { + "type": "boolean" + }, + "forceDelete": { + "type": "boolean" + }, + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.WebsiteDnsAccountCreate": { + "properties": { + "authorization": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "authorization", + "name", + "type" + ], + "type": "object" + }, + "request.WebsiteDnsAccountUpdate": { + "properties": { + "authorization": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "authorization", + "id", + "name", + "type" + ], + "type": "object" + }, + "request.WebsiteDomain": { + "properties": { + "domain": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "ssl": { + "type": "boolean" + } + }, + "required": [ + "domain" + ], + "type": "object" + }, + "request.WebsiteDomainCreate": { + "properties": { + "domains": { + "items": { + "$ref": "#/definitions/request.WebsiteDomain" + }, + "type": "array" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "domains", + "websiteID" + ], + "type": "object" + }, + "request.WebsiteDomainDelete": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.WebsiteDomainUpdate": { + "properties": { + "id": { + "type": "integer" + }, + "ssl": { + "type": "boolean" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.WebsiteHTTPSOp": { + "properties": { + "SSLProtocol": { + "items": { + "type": "string" + }, + "type": "array" + }, + "algorithm": { + "type": "string" + }, + "certificate": { + "type": "string" + }, + "certificatePath": { + "type": "string" + }, + "enable": { + "type": "boolean" + }, + "hsts": { + "type": "boolean" + }, + "hstsIncludeSubDomains": { + "type": "boolean" + }, + "http3": { + "type": "boolean" + }, + "httpConfig": { + "enum": [ + "HTTPSOnly", + "HTTPAlso", + "HTTPToHTTPS" + ], + "type": "string" + }, + "httpsPorts": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "importType": { + "type": "string" + }, + "privateKey": { + "type": "string" + }, + "privateKeyPath": { + "type": "string" + }, + "type": { + "enum": [ + "existed", + "auto", + "manual" + ], + "type": "string" + }, + "websiteId": { + "type": "integer" + }, + "websiteSSLId": { + "type": "integer" + } + }, + "required": [ + "websiteId" + ], + "type": "object" + }, + "request.WebsiteHtmlUpdate": { + "properties": { + "content": { + "type": "string" + }, + "sync": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "required": [ + "content", + "type" + ], + "type": "object" + }, + "request.WebsiteInstallCheckReq": { + "properties": { + "InstallIds": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "request.WebsiteLBCreate": { + "properties": { + "algorithm": { + "type": "string" + }, + "name": { + "type": "string" + }, + "servers": { + "items": { + "$ref": "#/definitions/dto.NginxUpstreamServer" + }, + "type": "array" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "name", + "websiteID" + ], + "type": "object" + }, + "request.WebsiteLBDelete": { + "properties": { + "name": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "name", + "websiteID" + ], + "type": "object" + }, + "request.WebsiteLBUpdate": { + "properties": { + "algorithm": { + "type": "string" + }, + "name": { + "type": "string" + }, + "servers": { + "items": { + "$ref": "#/definitions/dto.NginxUpstreamServer" + }, + "type": "array" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "name", + "websiteID" + ], + "type": "object" + }, + "request.WebsiteLBUpdateFile": { + "properties": { + "content": { + "type": "string" + }, + "name": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "content", + "name", + "websiteID" + ], + "type": "object" + }, + "request.WebsiteLogReq": { + "properties": { + "id": { + "type": "integer" + }, + "logType": { + "type": "string" + }, + "operate": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "id", + "logType", + "operate" + ], + "type": "object" + }, + "request.WebsiteNginxUpdate": { + "properties": { + "content": { + "type": "string" + }, + "id": { + "type": "integer" + } + }, + "required": [ + "content", + "id" + ], + "type": "object" + }, + "request.WebsiteOp": { + "properties": { + "id": { + "type": "integer" + }, + "operate": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.WebsitePHPVersionReq": { + "properties": { + "runtimeID": { + "type": "integer" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.WebsiteProxyConfig": { + "properties": { + "allowCredentials": { + "type": "boolean" + }, + "allowHeaders": { + "type": "string" + }, + "allowMethods": { + "type": "string" + }, + "allowOrigins": { + "type": "string" + }, + "cache": { + "type": "boolean" + }, + "cacheTime": { + "type": "integer" + }, + "cacheUnit": { + "type": "string" + }, + "content": { + "type": "string" + }, + "cors": { + "type": "boolean" + }, + "enable": { + "type": "boolean" + }, + "filePath": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "match": { + "type": "string" + }, + "modifier": { + "type": "string" + }, + "name": { + "type": "string" + }, + "operate": { + "type": "string" + }, + "preflight": { + "type": "boolean" + }, + "proxyHost": { + "type": "string" + }, + "proxyPass": { + "type": "string" + }, + "proxySSLName": { + "type": "string" + }, + "replaces": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "serverCacheTime": { + "type": "integer" + }, + "serverCacheUnit": { + "type": "string" + }, + "sni": { + "type": "boolean" + } + }, + "required": [ + "id", + "match", + "name", + "operate", + "proxyHost", + "proxyPass" + ], + "type": "object" + }, + "request.WebsiteProxyReq": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.WebsiteRealIP": { + "properties": { + "ipFrom": { + "type": "string" + }, + "ipHeader": { + "type": "string" + }, + "ipOther": { + "type": "string" + }, + "open": { + "type": "boolean" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.WebsiteResourceReq": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.WebsiteSSLApply": { + "properties": { + "ID": { + "type": "integer" + }, + "disableLog": { + "type": "boolean" + }, + "nameservers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "skipDNSCheck": { + "type": "boolean" + } + }, + "required": [ + "ID" + ], + "type": "object" + }, + "request.WebsiteSSLCreate": { + "properties": { + "acmeAccountId": { + "type": "integer" + }, + "apply": { + "type": "boolean" + }, + "autoRenew": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "disableCNAME": { + "type": "boolean" + }, + "dnsAccountId": { + "type": "integer" + }, + "execShell": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "isIp": { + "type": "boolean" + }, + "keyType": { + "type": "string" + }, + "nameserver1": { + "type": "string" + }, + "nameserver2": { + "type": "string" + }, + "nodes": { + "type": "string" + }, + "otherDomains": { + "type": "string" + }, + "primaryDomain": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "pushDir": { + "type": "boolean" + }, + "pushNode": { + "type": "boolean" + }, + "shell": { + "type": "string" + }, + "skipDNS": { + "type": "boolean" + } + }, + "required": [ + "acmeAccountId", + "primaryDomain", + "provider" + ], + "type": "object" + }, + "request.WebsiteSSLSearch": { + "properties": { + "acmeAccountID": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "expire_date" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "request.WebsiteSSLUpdate": { + "properties": { + "acmeAccountId": { + "type": "integer" + }, + "apply": { + "type": "boolean" + }, + "autoRenew": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "disableCNAME": { + "type": "boolean" + }, + "dnsAccountId": { + "type": "integer" + }, + "execShell": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "keyType": { + "type": "string" + }, + "nameserver1": { + "type": "string" + }, + "nameserver2": { + "type": "string" + }, + "nodes": { + "type": "string" + }, + "otherDomains": { + "type": "string" + }, + "primaryDomain": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "pushDir": { + "type": "boolean" + }, + "pushNode": { + "type": "boolean" + }, + "shell": { + "type": "string" + }, + "skipDNS": { + "type": "boolean" + } + }, + "required": [ + "id", + "primaryDomain", + "provider" + ], + "type": "object" + }, + "request.WebsiteSSLUpload": { + "properties": { + "certificate": { + "type": "string" + }, + "certificatePath": { + "type": "string" + }, + "description": { + "type": "string" + }, + "privateKey": { + "type": "string" + }, + "privateKeyPath": { + "type": "string" + }, + "sslID": { + "type": "integer" + }, + "type": { + "enum": [ + "paste", + "local" + ], + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "request.WebsiteSearch": { + "properties": { + "name": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "primary_domain", + "type", + "status", + "createdAt", + "expire_date", + "created_at", + "favorite" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "websiteGroupId": { + "type": "integer" + } + }, + "required": [ + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "request.WebsiteUpdate": { + "properties": { + "IPV6": { + "type": "boolean" + }, + "expireDate": { + "type": "string" + }, + "favorite": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "primaryDomain": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "webSiteGroupID": { + "type": "integer" + } + }, + "required": [ + "id", + "primaryDomain" + ], + "type": "object" + }, + "request.WebsiteUpdateDir": { + "properties": { + "id": { + "type": "integer" + }, + "siteDir": { + "type": "string" + } + }, + "required": [ + "id", + "siteDir" + ], + "type": "object" + }, + "request.WebsiteUpdateDirPermission": { + "properties": { + "group": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "user": { + "type": "string" + } + }, + "required": [ + "group", + "id", + "user" + ], + "type": "object" + }, + "response.AppConfig": { + "properties": { + "advanced": { + "type": "boolean" + }, + "allowPort": { + "type": "boolean" + }, + "containerName": { + "type": "string" + }, + "cpuQuota": { + "type": "number" + }, + "dockerCompose": { + "type": "string" + }, + "editCompose": { + "type": "boolean" + }, + "gpuConfig": { + "type": "boolean" + }, + "hostMode": { + "type": "boolean" + }, + "memoryLimit": { + "type": "number" + }, + "memoryUnit": { + "type": "string" + }, + "params": { + "items": { + "$ref": "#/definitions/response.AppParam" + }, + "type": "array" + }, + "pullImage": { + "type": "boolean" + }, + "rawCompose": { + "type": "string" + }, + "restartPolicy": { + "enum": [ + "always", + "unless-stopped", + "no", + "on-failure" + ], + "type": "string" + }, + "specifyIP": { + "type": "string" + }, + "type": { + "type": "string" + }, + "webUI": { + "type": "string" + } + }, + "type": "object" + }, + "response.AppDTO": { + "properties": { + "architectures": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "crossVersionUpdate": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "document": { + "type": "string" + }, + "github": { + "type": "string" + }, + "gpuSupport": { + "type": "boolean" + }, + "icon": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "installed": { + "type": "boolean" + }, + "key": { + "type": "string" + }, + "lastModified": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "memoryRequired": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "readMe": { + "type": "string" + }, + "recommend": { + "type": "integer" + }, + "required": { + "type": "string" + }, + "requiredPanelVersion": { + "type": "number" + }, + "resource": { + "type": "string" + }, + "shortDescEn": { + "type": "string" + }, + "shortDescZh": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tags": { + "items": { + "$ref": "#/definitions/response.TagDTO" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "versions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "website": { + "type": "string" + } + }, + "type": "object" + }, + "response.AppDetailDTO": { + "properties": { + "appId": { + "type": "integer" + }, + "architectures": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "dockerCompose": { + "type": "string" + }, + "downloadCallBackUrl": { + "type": "string" + }, + "downloadUrl": { + "type": "string" + }, + "enable": { + "type": "boolean" + }, + "gpuSupport": { + "type": "boolean" + }, + "hostMode": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "image": { + "type": "string" + }, + "lastModified": { + "type": "integer" + }, + "lastVersion": { + "type": "string" + }, + "memoryRequired": { + "type": "integer" + }, + "params": {}, + "status": { + "type": "string" + }, + "update": { + "type": "boolean" + }, + "updatedAt": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "response.AppInstalledCheck": { + "properties": { + "app": { + "type": "string" + }, + "appInstallId": { + "type": "integer" + }, + "containerName": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "httpPort": { + "type": "integer" + }, + "httpsPort": { + "type": "integer" + }, + "installPath": { + "type": "string" + }, + "isExist": { + "type": "boolean" + }, + "lastBackupAt": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + }, + "websiteDir": { + "type": "string" + } + }, + "type": "object" + }, + "response.AppItem": { + "properties": { + "description": { + "type": "string" + }, + "gpuSupport": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "installed": { + "type": "boolean" + }, + "key": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "recommend": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "response.AppParam": { + "properties": { + "edit": { + "type": "boolean" + }, + "key": { + "type": "string" + }, + "label": { + "$ref": "#/definitions/dto.Locale" + }, + "labelEn": { + "type": "string" + }, + "labelZh": { + "type": "string" + }, + "multiple": { + "type": "boolean" + }, + "required": { + "type": "boolean" + }, + "rule": { + "type": "string" + }, + "showValue": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": {}, + "values": {} + }, + "type": "object" + }, + "response.AppRes": { + "properties": { + "items": { + "items": { + "$ref": "#/definitions/response.AppItem" + }, + "type": "array" + }, + "total": { + "type": "integer" + } + }, + "type": "object" + }, + "response.AppService": { + "properties": { + "config": {}, + "from": { + "type": "string" + }, + "label": { + "type": "string" + }, + "status": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "response.AppUpdateRes": { + "properties": { + "appList": { + "$ref": "#/definitions/dto.AppList" + }, + "appStoreLastModified": { + "type": "integer" + }, + "canUpdate": { + "type": "boolean" + }, + "isSyncing": { + "type": "boolean" + } + }, + "type": "object" + }, + "response.CompleteDiskInfo": { + "properties": { + "disks": { + "items": { + "$ref": "#/definitions/response.DiskInfo" + }, + "type": "array" + }, + "systemDisks": { + "items": { + "$ref": "#/definitions/response.DiskInfo" + }, + "type": "array" + }, + "totalCapacity": { + "type": "integer" + }, + "totalDisks": { + "type": "integer" + }, + "unpartitionedDisks": { + "items": { + "$ref": "#/definitions/response.DiskBasicInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.ComponentInfo": { + "properties": { + "error": { + "type": "string" + }, + "exists": { + "type": "boolean" + }, + "path": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "response.Database": { + "properties": { + "databaseName": { + "type": "string" + }, + "from": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "response.DatabaseConn": { + "properties": { + "containerName": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "serviceName": { + "type": "string" + }, + "status": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "response.DepthDirSizeRes": { + "properties": { + "path": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "response.DirSizeRes": { + "properties": { + "size": { + "type": "integer" + } + }, + "required": [ + "size" + ], + "type": "object" + }, + "response.DiskBasicInfo": { + "properties": { + "avail": { + "type": "string" + }, + "device": { + "type": "string" + }, + "diskType": { + "type": "string" + }, + "filesystem": { + "type": "string" + }, + "isMounted": { + "type": "boolean" + }, + "isRemovable": { + "type": "boolean" + }, + "isSystem": { + "type": "boolean" + }, + "model": { + "type": "string" + }, + "mountPoint": { + "type": "string" + }, + "serial": { + "type": "string" + }, + "size": { + "type": "string" + }, + "usePercent": { + "type": "integer" + }, + "used": { + "type": "string" + } + }, + "type": "object" + }, + "response.DiskInfo": { + "properties": { + "avail": { + "type": "string" + }, + "device": { + "type": "string" + }, + "diskType": { + "type": "string" + }, + "filesystem": { + "type": "string" + }, + "isMounted": { + "type": "boolean" + }, + "isRemovable": { + "type": "boolean" + }, + "isSystem": { + "type": "boolean" + }, + "model": { + "type": "string" + }, + "mountPoint": { + "type": "string" + }, + "partitions": { + "items": { + "$ref": "#/definitions/response.DiskBasicInfo" + }, + "type": "array" + }, + "serial": { + "type": "string" + }, + "size": { + "type": "string" + }, + "usePercent": { + "type": "integer" + }, + "used": { + "type": "string" + } + }, + "type": "object" + }, + "response.ExistFileInfo": { + "properties": { + "isDir": { + "type": "boolean" + }, + "modTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "response.FileInfo": { + "properties": { + "content": { + "type": "string" + }, + "extension": { + "type": "string" + }, + "favoriteID": { + "type": "integer" + }, + "gid": { + "type": "string" + }, + "group": { + "type": "string" + }, + "isDetail": { + "type": "boolean" + }, + "isDir": { + "type": "boolean" + }, + "isHidden": { + "type": "boolean" + }, + "isSymlink": { + "type": "boolean" + }, + "itemTotal": { + "type": "integer" + }, + "items": { + "items": { + "$ref": "#/definitions/files.FileInfo" + }, + "type": "array" + }, + "linkPath": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "modTime": { + "type": "string" + }, + "mode": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "updateTime": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "response.FileLineContent": { + "properties": { + "end": { + "type": "boolean" + }, + "lines": { + "items": { + "type": "string" + }, + "type": "array" + }, + "path": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "taskStatus": { + "type": "string" + }, + "total": { + "type": "integer" + }, + "totalLines": { + "type": "integer" + } + }, + "type": "object" + }, + "response.FileTree": { + "properties": { + "children": { + "items": { + "$ref": "#/definitions/response.FileTree" + }, + "type": "array" + }, + "extension": { + "type": "string" + }, + "id": { + "type": "string" + }, + "isDir": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + } + }, + "type": "object" + }, + "response.FileWgetRes": { + "properties": { + "key": { + "type": "string" + } + }, + "type": "object" + }, + "response.HostToolConfig": { + "properties": { + "content": { + "type": "string" + } + }, + "type": "object" + }, + "response.HostToolRes": { + "properties": { + "config": {}, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "response.McpBindDomainRes": { + "properties": { + "acmeAccountID": { + "type": "integer" + }, + "allowIPs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "connUrl": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "sslID": { + "type": "integer" + }, + "websiteID": { + "type": "integer" + } + }, + "type": "object" + }, + "response.McpServerDTO": { + "properties": { + "baseUrl": { + "type": "string" + }, + "command": { + "type": "string" + }, + "containerName": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "dockerCompose": { + "type": "string" + }, + "env": { + "type": "string" + }, + "environments": { + "items": { + "$ref": "#/definitions/request.Environment" + }, + "type": "array" + }, + "hostIP": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "outputTransport": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "ssePath": { + "type": "string" + }, + "status": { + "type": "string" + }, + "streamableHttpPath": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "volumes": { + "items": { + "$ref": "#/definitions/request.Volume" + }, + "type": "array" + }, + "websiteID": { + "type": "integer" + } + }, + "type": "object" + }, + "response.McpServersRes": { + "properties": { + "items": { + "items": { + "$ref": "#/definitions/response.McpServerDTO" + }, + "type": "array" + }, + "total": { + "type": "integer" + } + }, + "type": "object" + }, + "response.NginxAntiLeechRes": { + "properties": { + "blocked": { + "type": "boolean" + }, + "cache": { + "type": "boolean" + }, + "cacheTime": { + "type": "integer" + }, + "cacheUint": { + "type": "string" + }, + "enable": { + "type": "boolean" + }, + "extends": { + "type": "string" + }, + "logEnable": { + "type": "boolean" + }, + "noneRef": { + "type": "boolean" + }, + "return": { + "type": "string" + }, + "serverNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.NginxAuthRes": { + "properties": { + "enable": { + "type": "boolean" + }, + "items": { + "items": { + "$ref": "#/definitions/dto.NginxAuth" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.NginxBuildConfig": { + "properties": { + "mirror": { + "type": "string" + }, + "modules": { + "items": { + "$ref": "#/definitions/response.NginxModule" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.NginxConfigRes": { + "properties": { + "https": { + "type": "boolean" + }, + "sslRejectHandshake": { + "type": "boolean" + } + }, + "type": "object" + }, + "response.NginxFile": { + "properties": { + "content": { + "type": "string" + } + }, + "type": "object" + }, + "response.NginxModule": { + "properties": { + "enable": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "packages": { + "type": "string" + }, + "params": { + "type": "string" + }, + "script": { + "type": "string" + } + }, + "type": "object" + }, + "response.NginxParam": { + "properties": { + "name": { + "type": "string" + }, + "params": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.NginxPathAuthRes": { + "properties": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "response.NginxProxyCache": { + "properties": { + "cacheExpire": { + "type": "integer" + }, + "cacheExpireUnit": { + "type": "string" + }, + "cacheLimit": { + "type": "number" + }, + "cacheLimitUnit": { + "type": "string" + }, + "open": { + "type": "boolean" + }, + "shareCache": { + "type": "integer" + }, + "shareCacheUnit": { + "type": "string" + } + }, + "type": "object" + }, + "response.NginxRedirectConfig": { + "properties": { + "content": { + "type": "string" + }, + "domains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "enable": { + "type": "boolean" + }, + "filePath": { + "type": "string" + }, + "keepPath": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "redirect": { + "type": "string" + }, + "redirectRoot": { + "type": "boolean" + }, + "target": { + "type": "string" + }, + "type": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "type": "object" + }, + "response.NginxRewriteRes": { + "properties": { + "content": { + "type": "string" + } + }, + "type": "object" + }, + "response.NginxStatus": { + "properties": { + "accepts": { + "type": "integer" + }, + "active": { + "type": "integer" + }, + "handled": { + "type": "integer" + }, + "reading": { + "type": "integer" + }, + "requests": { + "type": "integer" + }, + "waiting": { + "type": "integer" + }, + "writing": { + "type": "integer" + } + }, + "type": "object" + }, + "response.NodeModule": { + "properties": { + "description": { + "type": "string" + }, + "license": { + "type": "string" + }, + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "response.PHPConfig": { + "properties": { + "disableFunctions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "maxExecutionTime": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "uploadMaxSize": { + "type": "string" + } + }, + "type": "object" + }, + "response.PHPExtensionRes": { + "properties": { + "extensions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "supportExtensions": { + "items": { + "$ref": "#/definitions/response.SupportExtension" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.PackageScripts": { + "properties": { + "name": { + "type": "string" + }, + "script": { + "type": "string" + } + }, + "type": "object" + }, + "response.ProcessStatus": { + "properties": { + "PID": { + "type": "string" + }, + "msg": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "type": "string" + }, + "uptime": { + "type": "string" + } + }, + "type": "object" + }, + "response.Resource": { + "properties": { + "detail": {}, + "name": { + "type": "string" + }, + "resourceID": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "response.RuntimeDTO": { + "properties": { + "appDetailID": { + "type": "integer" + }, + "appID": { + "type": "integer" + }, + "appParams": { + "items": { + "$ref": "#/definitions/response.AppParam" + }, + "type": "array" + }, + "codeDir": { + "type": "string" + }, + "container": { + "type": "string" + }, + "containerStatus": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "environments": { + "items": { + "$ref": "#/definitions/request.Environment" + }, + "type": "array" + }, + "exposedPorts": { + "items": { + "$ref": "#/definitions/request.ExposedPort" + }, + "type": "array" + }, + "extraHosts": { + "items": { + "$ref": "#/definitions/request.ExtraHost" + }, + "type": "array" + }, + "id": { + "type": "integer" + }, + "image": { + "type": "string" + }, + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "params": { + "additionalProperties": true, + "type": "object" + }, + "path": { + "type": "string" + }, + "port": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "resource": { + "type": "string" + }, + "source": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "volumes": { + "items": { + "$ref": "#/definitions/request.Volume" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.SupervisorProcessConfig": { + "properties": { + "autoRestart": { + "type": "string" + }, + "autoStart": { + "type": "string" + }, + "command": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "environment": { + "type": "string" + }, + "msg": { + "type": "string" + }, + "name": { + "type": "string" + }, + "numprocs": { + "type": "string" + }, + "status": { + "items": { + "$ref": "#/definitions/response.ProcessStatus" + }, + "type": "array" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "response.SupportExtension": { + "properties": { + "check": { + "type": "string" + }, + "description": { + "type": "string" + }, + "file": { + "type": "string" + }, + "installed": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "versions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.TagDTO": { + "properties": { + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "response.UserGroupResponse": { + "properties": { + "groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "users": { + "items": { + "$ref": "#/definitions/response.UserInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.UserInfo": { + "properties": { + "group": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "response.WebsiteAcmeAccountDTO": { + "properties": { + "caDirURL": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "eabHmacKey": { + "type": "string" + }, + "eabKid": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "keyType": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "url": { + "type": "string" + }, + "useProxy": { + "type": "boolean" + } + }, + "type": "object" + }, + "response.WebsiteCADTO": { + "properties": { + "city": { + "type": "string" + }, + "commonName": { + "type": "string" + }, + "country": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "csr": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "keyType": { + "type": "string" + }, + "name": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "organizationUint": { + "type": "string" + }, + "privateKey": { + "type": "string" + }, + "province": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "type": "object" + }, + "response.WebsiteDNSRes": { + "properties": { + "domain": { + "type": "string" + }, + "err": { + "type": "string" + }, + "resolve": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "response.WebsiteDTO": { + "properties": { + "IPV6": { + "type": "boolean" + }, + "accessLog": { + "type": "boolean" + }, + "accessLogPath": { + "type": "string" + }, + "algorithm": { + "type": "string" + }, + "alias": { + "type": "string" + }, + "appInstallId": { + "type": "integer" + }, + "appName": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "dbID": { + "type": "integer" + }, + "dbType": { + "type": "string" + }, + "defaultServer": { + "type": "boolean" + }, + "domains": { + "items": { + "$ref": "#/definitions/model.WebsiteDomain" + }, + "type": "array" + }, + "errorLog": { + "type": "boolean" + }, + "errorLogPath": { + "type": "string" + }, + "expireDate": { + "type": "string" + }, + "favorite": { + "type": "boolean" + }, + "ftpId": { + "type": "integer" + }, + "group": { + "type": "string" + }, + "httpConfig": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "openBaseDir": { + "type": "boolean" + }, + "parentWebsiteID": { + "type": "integer" + }, + "primaryDomain": { + "type": "string" + }, + "protocol": { + "type": "string" + }, + "proxy": { + "type": "string" + }, + "proxyType": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "rewrite": { + "type": "string" + }, + "runtimeID": { + "type": "integer" + }, + "runtimeName": { + "type": "string" + }, + "runtimeType": { + "type": "string" + }, + "servers": { + "items": { + "$ref": "#/definitions/dto.NginxUpstreamServer" + }, + "type": "array" + }, + "siteDir": { + "type": "string" + }, + "sitePath": { + "type": "string" + }, + "status": { + "type": "string" + }, + "streamPorts": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "user": { + "type": "string" + }, + "webSiteGroupId": { + "type": "integer" + }, + "webSiteSSL": { + "$ref": "#/definitions/model.WebsiteSSL" + }, + "webSiteSSLId": { + "type": "integer" + } + }, + "type": "object" + }, + "response.WebsiteDirConfig": { + "properties": { + "dirs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "msg": { + "type": "string" + }, + "user": { + "type": "string" + }, + "userGroup": { + "type": "string" + } + }, + "type": "object" + }, + "response.WebsiteHTTPS": { + "properties": { + "SSL": { + "$ref": "#/definitions/model.WebsiteSSL" + }, + "SSLProtocol": { + "items": { + "type": "string" + }, + "type": "array" + }, + "algorithm": { + "type": "string" + }, + "enable": { + "type": "boolean" + }, + "hsts": { + "type": "boolean" + }, + "hstsIncludeSubDomains": { + "type": "boolean" + }, + "http3": { + "type": "boolean" + }, + "httpConfig": { + "type": "string" + }, + "httpsPort": { + "type": "string" + }, + "httpsPorts": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.WebsiteHtmlRes": { + "properties": { + "content": { + "type": "string" + } + }, + "type": "object" + }, + "response.WebsiteLog": { + "properties": { + "content": { + "type": "string" + }, + "enable": { + "type": "boolean" + }, + "end": { + "type": "boolean" + }, + "path": { + "type": "string" + } + }, + "type": "object" + }, + "response.WebsiteNginxConfig": { + "properties": { + "enable": { + "type": "boolean" + }, + "params": { + "items": { + "$ref": "#/definitions/response.NginxParam" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.WebsiteOption": { + "properties": { + "alias": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "primaryDomain": { + "type": "string" + } + }, + "type": "object" + }, + "response.WebsitePreInstallCheck": { + "properties": { + "appName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "response.WebsiteRealIP": { + "properties": { + "ipFrom": { + "type": "string" + }, + "ipHeader": { + "type": "string" + }, + "ipOther": { + "type": "string" + }, + "open": { + "type": "boolean" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "response.WebsiteSSLDTO": { + "properties": { + "acmeAccount": { + "$ref": "#/definitions/model.WebsiteAcmeAccount" + }, + "acmeAccountId": { + "type": "integer" + }, + "autoRenew": { + "type": "boolean" + }, + "caId": { + "type": "integer" + }, + "certPath": { + "type": "string" + }, + "certURL": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "description": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "disableCNAME": { + "type": "boolean" + }, + "dnsAccount": { + "$ref": "#/definitions/model.WebsiteDnsAccount" + }, + "dnsAccountId": { + "type": "integer" + }, + "domains": { + "type": "string" + }, + "execShell": { + "type": "boolean" + }, + "expireDate": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "isIP": { + "type": "boolean" + }, + "keyType": { + "type": "string" + }, + "logPath": { + "type": "string" + }, + "masterSslId": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "nameserver1": { + "type": "string" + }, + "nameserver2": { + "type": "string" + }, + "nodes": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "pem": { + "type": "string" + }, + "primaryDomain": { + "type": "string" + }, + "privateKey": { + "type": "string" + }, + "privateKeyPath": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "pushDir": { + "type": "boolean" + }, + "pushNode": { + "type": "boolean" + }, + "shell": { + "type": "string" + }, + "skipDNS": { + "type": "boolean" + }, + "startDate": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "websites": { + "items": { + "$ref": "#/definitions/model.Website" + }, + "type": "array" + } + }, + "type": "object" + } + } +}` + +var SwaggerInfo = &swag.Spec{ + Version: "2.0", + Host: "localhost", + BasePath: "/api/v2", + Schemes: []string{}, + Title: "1Panel", + Description: "Top-Rated Web-based Linux Server Management Tool", + InfoInstanceName: "swagger", + SwaggerTemplate: docTemplate, + LeftDelim: "{{", + RightDelim: "}}", +} + +func init() { + swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo) +} \ No newline at end of file diff --git a/core/cmd/server/docs/swagger.go b/core/cmd/server/docs/swagger.go new file mode 100644 index 0000000..bc2172c --- /dev/null +++ b/core/cmd/server/docs/swagger.go @@ -0,0 +1,6 @@ +package docs + +import _ "embed" + +//go:embed x-log.json +var XLogJson []byte diff --git a/core/cmd/server/docs/swagger.json b/core/cmd/server/docs/swagger.json new file mode 100644 index 0000000..a661603 --- /dev/null +++ b/core/cmd/server/docs/swagger.json @@ -0,0 +1,34789 @@ +{ + "swagger": "2.0", + "info": { + "contact": {}, + "description": "Top-Rated Web-based Linux Server Management Tool", + "license": { + "name": "GPL-3.0", + "url": "https://www.gnu.org/licenses/gpl-3.0.html" + }, + "termsOfService": "http://swagger.io/terms/", + "title": "1Panel", + "version": "2.0" + }, + "host": "", + "basePath": "/api/v2", + "paths": { + "/ai/domain/bind": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OllamaBindDomain" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Bind domain", + "tags": [ + "AI" + ] + } + }, + "/ai/domain/get": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OllamaBindDomainReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.OllamaBindDomainRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get bind domain", + "tags": [ + "AI" + ] + } + }, + "/ai/gpu/load": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load gpu / xpu info", + "tags": [ + "AI" + ] + } + }, + "/ai/mcp/domain/bind": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.McpBindDomain" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Bind Domain for mcp server", + "tags": [ + "McpServer" + ] + } + }, + "/ai/mcp/domain/get": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.McpBindDomainRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get bin Domain for mcp server", + "tags": [ + "McpServer" + ] + } + }, + "/ai/mcp/domain/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.McpBindDomainUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update bind Domain for mcp server", + "tags": [ + "McpServer" + ] + } + }, + "/ai/mcp/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.McpServerSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.McpServersRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List mcp servers", + "tags": [ + "McpServer" + ] + } + }, + "/ai/mcp/server": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.McpServerCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create mcp server", + "tags": [ + "McpServer" + ] + } + }, + "/ai/mcp/server/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.McpServerDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete mcp server", + "tags": [ + "McpServer" + ] + } + }, + "/ai/mcp/server/op": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.McpServerOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate mcp server", + "tags": [ + "McpServer" + ] + } + }, + "/ai/mcp/server/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.McpServerUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update mcp server", + "tags": [ + "McpServer" + ] + } + }, + "/ai/ollama/close": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OllamaModelName" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Close Ollama model conn", + "tags": [ + "AI" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "close conn for Ollama model [name]", + "formatZH": "关闭 Ollama 模型连接 [name]", + "paramKeys": [] + } + } + }, + "/ai/ollama/model": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OllamaModelName" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create Ollama model", + "tags": [ + "AI" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "add Ollama model [name]", + "formatZH": "添加 Ollama 模型 [name]", + "paramKeys": [] + } + } + }, + "/ai/ollama/model/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ForceDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete Ollama model", + "tags": [ + "AI" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "ollama_models", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "name", + "output_value": "names" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "remove Ollama model [names]", + "formatZH": "删除 Ollama 模型 [names]", + "paramKeys": [] + } + } + }, + "/ai/ollama/model/load": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OllamaModelName" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page Ollama models", + "tags": [ + "AI" + ] + } + }, + "/ai/ollama/model/recreate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OllamaModelName" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Rereate Ollama model", + "tags": [ + "AI" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "re-add Ollama model [name]", + "formatZH": "添加 Ollama 模型重试 [name]", + "paramKeys": [] + } + } + }, + "/ai/ollama/model/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page Ollama models", + "tags": [ + "AI" + ] + } + }, + "/ai/ollama/model/sync": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.OllamaModelDropList" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Sync Ollama model list", + "tags": [ + "AI" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "sync Ollama model list", + "formatZH": "同步 Ollama 模型列表", + "paramKeys": [] + } + } + }, + "/apps/:key": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "app key", + "in": "path", + "name": "key", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.AppDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search app by key", + "tags": [ + "App" + ] + } + }, + "/apps/checkupdate": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.AppUpdateRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get app list update", + "tags": [ + "App" + ] + } + }, + "/apps/detail/:appId/:version/:type": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "app id", + "in": "path", + "name": "appId", + "required": true, + "type": "integer" + }, + { + "description": "app 版本", + "in": "path", + "name": "version", + "required": true, + "type": "string" + }, + { + "description": "app 类型", + "in": "path", + "name": "version", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.AppDetailDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search app detail by appid", + "tags": [ + "App" + ] + } + }, + "/apps/details/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "id", + "in": "path", + "name": "appId", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.AppDetailDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get app detail by id", + "tags": [ + "App" + ] + } + }, + "/apps/icon/:appId": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "app id", + "in": "path", + "name": "appId", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "app icon", + "schema": { + "type": "file" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get app icon by app_id", + "tags": [ + "App" + ] + } + }, + "/apps/ignored/cancel": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.ReqWithID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Cancel Ignore Upgrade App", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Cancel ignore application upgrade", + "formatZH": "取消忽略应用升级", + "paramKeys": [] + } + } + }, + "/apps/ignored/detail": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/model.AppIgnoreUpgrade" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List Upgrade Ignored App", + "tags": [ + "App" + ] + } + }, + "/apps/install": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.AppInstallCreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/model.AppInstall" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Install app", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Install app [name]", + "formatZH": "安装应用 [name]", + "paramKeys": [] + } + } + }, + "/apps/installed/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.AppInstalledInfo" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.AppInstalledCheck" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check app installed", + "tags": [ + "App" + ] + } + }, + "/apps/installed/conf": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithNameAndType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search default config by key", + "tags": [ + "App" + ] + } + }, + "/apps/installed/config/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.AppConfigUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update app config", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "installID", + "webUI" + ], + "formatEN": "Application config update [installID]", + "formatZH": "应用配置更新 [installID]", + "paramKeys": [] + } + } + }, + "/apps/installed/conninfo": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithNameAndType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.DatabaseConn" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search app password by key", + "tags": [ + "App" + ] + } + }, + "/apps/installed/delete/check/:appInstallId": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "App install id", + "in": "path", + "name": "appInstallId", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.AppResource" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check before delete", + "tags": [ + "App" + ] + } + }, + "/apps/installed/ignore": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.AppIgnoreUpgradeReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Ignore Upgrade App", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Ignore application upgrade", + "formatZH": "忽略应用升级", + "paramKeys": [] + } + } + }, + "/apps/installed/info/:appInstallId": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "App install id", + "in": "path", + "name": "appInstallId", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.AppInstallInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get app install info", + "tags": [ + "App" + ] + } + }, + "/apps/installed/list": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.AppInstallInfo" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List app installed", + "tags": [ + "App" + ] + } + }, + "/apps/installed/loadport": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithNameAndType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "integer" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search app port by key", + "tags": [ + "App" + ] + } + }, + "/apps/installed/op": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.AppInstalledOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate installed app", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "app_installs", + "input_column": "id", + "input_value": "installId", + "isList": false, + "output_column": "app_id", + "output_value": "appId" + }, + { + "db": "app_installs", + "input_column": "id", + "input_value": "installId", + "isList": false, + "output_column": "name", + "output_value": "appName" + }, + { + "db": "apps", + "input_column": "id", + "input_value": "appId", + "isList": false, + "output_column": "key", + "output_value": "appKey" + } + ], + "bodyKeys": [ + "installId", + "operate" + ], + "formatEN": "[operate] App [appKey][appName]", + "formatZH": "[operate] 应用 [appKey][appName]", + "paramKeys": [] + } + } + }, + "/apps/installed/params/:appInstallId": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "appInstallId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.AppConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search params by appInstallId", + "tags": [ + "App" + ] + } + }, + "/apps/installed/params/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.AppInstalledUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change app params", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "installId" + ], + "formatEN": "Application param update [installId]", + "formatZH": "应用参数修改 [installId]", + "paramKeys": [] + } + } + }, + "/apps/installed/port/change": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PortUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change app port", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "name", + "port" + ], + "formatEN": "Application port update [key]-[name] =\u003e [port]", + "formatZH": "应用端口修改 [key]-[name] =\u003e [port]", + "paramKeys": [] + } + } + }, + "/apps/installed/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.AppInstalledSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page app installed", + "tags": [ + "App" + ] + } + }, + "/apps/installed/sync": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Sync app installed", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Sync the list of installed apps", + "formatZH": "同步已安装应用列表", + "paramKeys": [] + } + } + }, + "/apps/installed/update/versions": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "appInstallId", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.AppVersion" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search app update version by install id", + "tags": [ + "App" + ] + } + }, + "/apps/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.AppSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.AppRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List apps", + "tags": [ + "App" + ] + } + }, + "/apps/services/:key": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "key", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.AppService" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search app service by key", + "tags": [ + "App" + ] + } + }, + "/apps/sync/local": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Sync local app list", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "App store synchronization", + "formatZH": "应用商店同步", + "paramKeys": [] + } + } + }, + "/apps/sync/remote": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Sync remote app list", + "tags": [ + "App" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "App store synchronization", + "formatZH": "应用商店同步", + "paramKeys": [] + } + } + }, + "/backups": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BackupOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create backup account", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type" + ], + "formatEN": "create backup account [type]", + "formatZH": "创建备份账号 [type]", + "paramKeys": [] + } + } + }, + "/backups/backup": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CommonBackup" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Backup system data", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type", + "name", + "detailName" + ], + "formatEN": "backup [type] data [name][detailName]", + "formatZH": "备份 [type] 数据 [name][detailName]", + "paramKeys": [] + } + } + }, + "/backups/buckets": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ForBuckets" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "object" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List buckets", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BackupOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check backup account", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete backup account", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "backup_accounts", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "type", + "output_value": "types" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "delete backup account [types]", + "formatZH": "删除备份账号 [types]", + "paramKeys": [] + } + } + }, + "/backups/local": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "get local backup dir", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/options": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.BackupOption" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load backup account options", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/record/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BatchDeleteReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete backup record", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "backup_records", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "file_name", + "output_value": "files" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete backup records [files]", + "formatZH": "删除备份记录 [files]", + "paramKeys": [] + } + } + }, + "/backups/record/description/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UpdateDescription" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update backup record description", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/record/download": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DownloadRecord" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Download backup record", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "source", + "fileName" + ], + "formatEN": "download backup records [source][fileName]", + "formatZH": "下载备份记录 [source][fileName]", + "paramKeys": [] + } + } + }, + "/backups/record/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.RecordSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page backup records", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/record/search/bycronjob": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.RecordSearchByCronjob" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page backup records by cronjob", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/record/size": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchForSize" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.RecordFileSize" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load backup record size", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/recover": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CommonRecover" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Recover system data", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type", + "name", + "detailName", + "file" + ], + "formatEN": "recover [type] data [name][detailName] from [file]", + "formatZH": "从 [file] 恢复 [type] 数据 [name][detailName]", + "paramKeys": [] + } + } + }, + "/backups/recover/byupload": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CommonRecover" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Recover system data by upload", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type", + "name", + "detailName", + "file" + ], + "formatEN": "recover [type] data [name][detailName] from [file]", + "formatZH": "从 [file] 恢复 [type] 数据 [name][detailName]", + "paramKeys": [] + } + } + }, + "/backups/refresh/token": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BackupOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Refresh token", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchPageWithType" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search backup accounts with page", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/search/files": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List files from backup accounts", + "tags": [ + "Backup Account" + ] + } + }, + "/backups/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BackupOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update backup account", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type" + ], + "formatEN": "update backup account [types]", + "formatZH": "更新备份账号 [types]", + "paramKeys": [] + } + } + }, + "/backups/upload": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UploadForRecover" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Upload file for recover", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "filePath" + ], + "formatEN": "upload backup file [filePath]", + "formatZH": "上传备份文件 [filePath]", + "paramKeys": [] + } + } + }, + "/containers": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ContainerOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create container", + "tags": [ + "Container" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "image" + ], + "formatEN": "create container [name][image]", + "formatZH": "创建容器 [name][image]", + "paramKeys": [] + } + } + }, + "/containers/clean/log": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clean container log", + "tags": [ + "Container" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "clean container [name] logs", + "formatZH": "清理容器 [name] 日志", + "paramKeys": [] + } + } + }, + "/containers/command": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ContainerCreateByCommand" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create container by command", + "tags": [ + "Container" + ] + } + }, + "/containers/commit": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ContainerCommit" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Commit Container", + "tags": [ + "Container" + ] + } + }, + "/containers/compose": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ComposeCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create compose", + "tags": [ + "Container Compose" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "create compose [name]", + "formatZH": "创建 compose [name]", + "paramKeys": [] + } + } + }, + "/containers/compose/clean/log": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ComposeLogClean" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clean compose log", + "tags": [ + "Container" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "clean compose [name] logs", + "formatZH": "清理容器编排 [name] 日志", + "paramKeys": [] + } + } + }, + "/containers/compose/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ComposeOperation" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate compose", + "tags": [ + "Container Compose" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "operation" + ], + "formatEN": "compose [operation] [name]", + "formatZH": "compose [operation] [name]", + "paramKeys": [] + } + } + }, + "/containers/compose/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page composes", + "tags": [ + "Container Compose" + ] + } + }, + "/containers/compose/test": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ComposeCreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "boolean" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Test compose", + "tags": [ + "Container Compose" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "check compose [name]", + "formatZH": "检测 compose [name] 格式", + "paramKeys": [] + } + } + }, + "/containers/compose/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ComposeUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update compose", + "tags": [ + "Container Compose" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "update compose information [name]", + "formatZH": "更新 compose [name]", + "paramKeys": [] + } + } + }, + "/containers/daemonjson": { + "get": { + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.DaemonJsonConf" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load docker daemon.json", + "tags": [ + "Container Docker" + ] + } + }, + "/containers/daemonjson/file": { + "get": { + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load docker daemon.json", + "tags": [ + "Container Docker" + ] + } + }, + "/containers/daemonjson/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SettingUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update docker daemon.json", + "tags": [ + "Container Docker" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "Updated configuration [key]", + "formatZH": "更新配置 [key]", + "paramKeys": [] + } + } + }, + "/containers/daemonjson/update/byfile": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DaemonJsonUpdateByFile" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update docker daemon.json by upload file", + "tags": [ + "Container Docker" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Updated configuration file", + "formatZH": "更新配置文件", + "paramKeys": [] + } + } + }, + "/containers/docker/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DockerOperation" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate docker", + "tags": [ + "Container Docker" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operation" + ], + "formatEN": "[operation] docker service", + "formatZH": "docker 服务 [operation]", + "paramKeys": [] + } + } + }, + "/containers/docker/status": { + "get": { + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load docker status", + "tags": [ + "Container Docker" + ] + } + }, + "/containers/image": { + "get": { + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.Options" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "load images options", + "tags": [ + "Container Image" + ] + } + }, + "/containers/image/all": { + "get": { + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.ImageInfo" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List all images", + "tags": [ + "Container Image" + ] + } + }, + "/containers/image/build": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ImageBuild" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Build image", + "tags": [ + "Container Image" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "build image [name]", + "formatZH": "构建镜像 [name]", + "paramKeys": [] + } + } + }, + "/containers/image/load": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ImageLoad" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load image", + "tags": [ + "Container Image" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "load image from [path]", + "formatZH": "从 [path] 加载镜像", + "paramKeys": [] + } + } + }, + "/containers/image/pull": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ImagePull" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Pull image", + "tags": [ + "Container Image" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "image_repos", + "input_column": "id", + "input_value": "repoID", + "isList": false, + "output_column": "name", + "output_value": "reponame" + } + ], + "bodyKeys": [ + "repoID", + "imageName" + ], + "formatEN": "image pull [reponame][imageName]", + "formatZH": "镜像拉取 [reponame][imageName]", + "paramKeys": [] + } + } + }, + "/containers/image/push": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ImagePush" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Push image", + "tags": [ + "Container Image" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "image_repos", + "input_column": "id", + "input_value": "repoID", + "isList": false, + "output_column": "name", + "output_value": "reponame" + } + ], + "bodyKeys": [ + "repoID", + "tagName", + "name" + ], + "formatEN": "push [tagName] to [reponame][name]", + "formatZH": "[tagName] 推送到 [reponame][name]", + "paramKeys": [] + } + } + }, + "/containers/image/remove": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BatchDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete image", + "tags": [ + "Container Image" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "names" + ], + "formatEN": "remove image [names]", + "formatZH": "移除镜像 [names]", + "paramKeys": [] + } + } + }, + "/containers/image/save": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ImageSave" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Save image", + "tags": [ + "Container Image" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "tagName", + "path", + "name" + ], + "formatEN": "save [tagName] as [path]/[name]", + "formatZH": "保留 [tagName] 为 [path]/[name]", + "paramKeys": [] + } + } + }, + "/containers/image/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageImage" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page images", + "tags": [ + "Container Image" + ] + } + }, + "/containers/image/tag": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ImageTag" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Tag image", + "tags": [ + "Container Image" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "image_repos", + "input_column": "id", + "input_value": "repoID", + "isList": false, + "output_column": "name", + "output_value": "reponame" + } + ], + "bodyKeys": [ + "repoID", + "targetName" + ], + "formatEN": "tag image [reponame][targetName]", + "formatZH": "tag 镜像 [reponame][targetName]", + "paramKeys": [] + } + } + }, + "/containers/info": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.ContainerOperate" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load container info", + "tags": [ + "Container" + ] + } + }, + "/containers/inspect": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.InspectReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Container inspect", + "tags": [ + "Container" + ] + } + }, + "/containers/ipv6option/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.LogOption" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update docker daemon.json ipv6 option", + "tags": [ + "Container Docker" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Updated the ipv6 option", + "formatZH": "更新 ipv6 配置", + "paramKeys": [] + } + } + }, + "/containers/item/stats": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.ContainerItemStats" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load container stats size" + } + }, + "/containers/limit": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.ResourceLimit" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load container limits" + } + }, + "/containers/list": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.ContainerOptions" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List containers", + "tags": [ + "Container" + ] + } + }, + "/containers/list/byimage": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.ContainerOptions" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List containers by image", + "tags": [ + "Container" + ] + } + }, + "/containers/list/stats": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.ContainerListStats" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load container stats" + } + }, + "/containers/logoption/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.LogOption" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update docker daemon.json log option", + "tags": [ + "Container Docker" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Updated the log option", + "formatZH": "更新日志配置", + "paramKeys": [] + } + } + }, + "/containers/network": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.Options" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List networks", + "tags": [ + "Container Network" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.NetworkCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create network", + "tags": [ + "Container Network" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "create container network [name]", + "formatZH": "创建容器网络 name", + "paramKeys": [] + } + } + }, + "/containers/network/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BatchDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete network", + "tags": [ + "Container Network" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "names" + ], + "formatEN": "delete container network [names]", + "formatZH": "删除容器网络 [names]", + "paramKeys": [] + } + } + }, + "/containers/network/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page networks", + "tags": [ + "Container Network" + ] + } + }, + "/containers/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ContainerOperation" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate Container", + "tags": [ + "Container" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "names", + "operation" + ], + "formatEN": "container [operation] [names]", + "formatZH": "容器 [names] 执行 [operation]", + "paramKeys": [] + } + } + }, + "/containers/prune": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ContainerPrune" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clean container", + "tags": [ + "Container" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "pruneType" + ], + "formatEN": "clean container [pruneType]", + "formatZH": "清理容器 [pruneType]", + "paramKeys": [] + } + } + }, + "/containers/rename": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ContainerRename" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Rename Container", + "tags": [ + "Container" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "newName" + ], + "formatEN": "rename container [name] =\u003e [newName]", + "formatZH": "容器重命名 [name] =\u003e [newName]", + "paramKeys": [] + } + } + }, + "/containers/repo": { + "get": { + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.ImageRepoOption" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List image repos", + "tags": [ + "Container Image-repo" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ImageRepoDelete" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create image repo", + "tags": [ + "Container Image-repo" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "create image repo [name]", + "formatZH": "创建镜像仓库 [name]", + "paramKeys": [] + } + } + }, + "/containers/repo/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete image repo", + "tags": [ + "Container Image-repo" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "image_repos", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "delete image repo [name]", + "formatZH": "删除镜像仓库 [name]", + "paramKeys": [] + } + } + }, + "/containers/repo/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page image repos", + "tags": [ + "Container Image-repo" + ] + } + }, + "/containers/repo/status": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load repo status", + "tags": [ + "Container Image-repo" + ] + } + }, + "/containers/repo/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ImageRepoUpdate" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update image repo", + "tags": [ + "Container Image-repo" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "image_repos", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "update image repo information [name]", + "formatZH": "更新镜像仓库 [name]", + "paramKeys": [] + } + } + }, + "/containers/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageContainer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page containers", + "tags": [ + "Container" + ] + } + }, + "/containers/search/log": { + "get": { + "parameters": [ + { + "description": "容器名称", + "in": "query", + "name": "container", + "type": "string" + }, + { + "description": "时间筛选", + "in": "query", + "name": "since", + "type": "string" + }, + { + "description": "是否追踪", + "in": "query", + "name": "follow", + "type": "string" + }, + { + "description": "显示行号", + "in": "query", + "name": "tail", + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Container logs", + "tags": [ + "Container" + ] + } + }, + "/containers/stats/:id": { + "get": { + "parameters": [ + { + "description": "容器id", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.ContainerStats" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Container stats", + "tags": [ + "Container" + ] + } + }, + "/containers/status": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.ContainerStatus" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load containers status", + "tags": [ + "Container" + ] + } + }, + "/containers/template": { + "get": { + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.ComposeTemplateInfo" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List compose templates", + "tags": [ + "Container Compose-template" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ComposeTemplateCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create compose template", + "tags": [ + "Container Compose-template" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "create compose template [name]", + "formatZH": "创建 compose 模版 [name]", + "paramKeys": [] + } + } + }, + "/containers/template/batch": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ComposeTemplateBatch" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Bacth compose template", + "tags": [ + "Container Compose-template" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "batch import compose templates", + "formatZH": "批量导入编排模版", + "paramKeys": [] + } + } + }, + "/containers/template/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BatchDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete compose template", + "tags": [ + "Container Compose-template" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "compose_templates", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "name", + "output_value": "names" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete compose template [names]", + "formatZH": "删除 compose 模版 [names]", + "paramKeys": [] + } + } + }, + "/containers/template/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page compose templates", + "tags": [ + "Container Compose-template" + ] + } + }, + "/containers/template/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ComposeTemplateUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update compose template", + "tags": [ + "Container Compose-template" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "compose_templates", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "update compose template information [name]", + "formatZH": "更新 compose 模版 [name]", + "paramKeys": [] + } + } + }, + "/containers/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ContainerOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update container", + "tags": [ + "Container" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "image" + ], + "formatEN": "update container [name][image]", + "formatZH": "更新容器 [name][image]", + "paramKeys": [] + } + } + }, + "/containers/upgrade": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ContainerUpgrade" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Upgrade container", + "tags": [ + "Container" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "names", + "image" + ], + "formatEN": "upgrade container image [names][image]", + "formatZH": "更新容器镜像 [names][image]", + "paramKeys": [] + } + } + }, + "/containers/users": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load container users", + "tags": [ + "Container" + ] + } + }, + "/containers/volume": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.Options" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List volumes", + "tags": [ + "Container Volume" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.VolumeCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create volume", + "tags": [ + "Container Volume" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "create container volume [name]", + "formatZH": "创建容器存储卷 [name]", + "paramKeys": [] + } + } + }, + "/containers/volume/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BatchDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete volume", + "tags": [ + "Container Volume" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "names" + ], + "formatEN": "delete container volume [names]", + "formatZH": "删除容器存储卷 [names]", + "paramKeys": [] + } + } + }, + "/containers/volume/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page volumes", + "tags": [ + "Container Volume" + ] + } + }, + "/core/auth/captcha": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.CaptchaResponse" + } + } + }, + "summary": "Load captcha", + "tags": [ + "Auth" + ] + } + }, + "/core/auth/login": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "安全入口 base64 加密串", + "in": "header", + "name": "EntranceCode", + "required": true, + "type": "string" + }, + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Login" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.UserLoginInfo" + } + } + }, + "summary": "User login", + "tags": [ + "Auth" + ] + } + }, + "/core/auth/logout": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "User logout", + "tags": [ + "Auth" + ] + } + }, + "/core/auth/mfalogin": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MFALogin" + } + } + ], + "responses": { + "200": { + "description": "OK", + "headers": { + "EntranceCode": { + "description": "安全入口", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/dto.UserLoginInfo" + } + } + }, + "summary": "User login with mfa", + "tags": [ + "Auth" + ] + } + }, + "/core/auth/setting": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.SystemSetting" + } + } + }, + "summary": "Get Setting For Login", + "tags": [ + "Auth" + ] + } + }, + "/core/backups": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BackupOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create backup account", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type" + ], + "formatEN": "create backup account [type]", + "formatZH": "创建备份账号 [type]", + "paramKeys": [] + } + } + }, + "/core/backups/client/:clientType": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.BackupClientInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load backup account base info", + "tags": [ + "Backup Account" + ] + } + }, + "/core/backups/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByName" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete backup account", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "delete backup account [name]", + "formatZH": "删除备份账号 [name]", + "paramKeys": [] + } + } + }, + "/core/backups/refresh/token": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByName" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Refresh token", + "tags": [ + "Backup Account" + ] + } + }, + "/core/backups/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BackupOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update backup account", + "tags": [ + "Backup Account" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type" + ], + "formatEN": "update backup account [types]", + "formatZH": "更新备份账号 [types]", + "paramKeys": [] + } + } + }, + "/core/commands": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CommandOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create command", + "tags": [ + "Command" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "command" + ], + "formatEN": "create quick command [name][command]", + "formatZH": "创建快捷命令 [name][command]", + "paramKeys": [] + } + } + }, + "/core/commands/command": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.CommandInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List commands", + "tags": [ + "Command" + ] + } + }, + "/core/commands/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByIDs" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete command", + "tags": [ + "Command" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "commands", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "name", + "output_value": "names" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete quick command [names]", + "formatZH": "删除快捷命令 [names]", + "paramKeys": [] + } + } + }, + "/core/commands/export": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Export command", + "tags": [ + "Command" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "export quick commands", + "formatZH": "导出快速命令", + "paramKeys": [] + } + } + }, + "/core/commands/import": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Import command", + "tags": [ + "Command" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "import quick commands", + "formatZH": "导入快速命令", + "paramKeys": [] + } + } + }, + "/core/commands/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page commands", + "tags": [ + "Command" + ] + } + }, + "/core/commands/tree": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.CommandTree" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Tree commands", + "tags": [ + "Command" + ] + } + }, + "/core/commands/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CommandOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update command", + "tags": [ + "Command" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "update quick command [name]", + "formatZH": "更新快捷命令 [name]", + "paramKeys": [] + } + } + }, + "/core/groups": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.GroupCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create group", + "tags": [ + "System Group" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "type" + ], + "formatEN": "create group [name][type]", + "formatZH": "创建组 [name][type]", + "paramKeys": [] + } + } + }, + "/core/groups/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete group", + "tags": [ + "System Group" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "groups", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + }, + { + "db": "groups", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "type", + "output_value": "type" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "delete group [type][name]", + "formatZH": "删除组 [type][name]", + "paramKeys": [] + } + } + }, + "/core/groups/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.GroupSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.OperateByType" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List groups", + "tags": [ + "System Group" + ] + } + }, + "/core/groups/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.GroupUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update group", + "tags": [ + "System Group" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "type" + ], + "formatEN": "update group [name][type]", + "formatZH": "更新组 [name][type]", + "paramKeys": [] + } + } + }, + "/core/hosts": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.HostOperate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.HostInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create host", + "tags": [ + "Host" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "addr" + ], + "formatEN": "create host [name][addr]", + "formatZH": "创建主机 [name][addr]", + "paramKeys": [] + } + } + }, + "/core/hosts/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByIDs" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete host", + "tags": [ + "Host" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "hosts", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "addr", + "output_value": "addrs" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete host [addrs]", + "formatZH": "删除主机 [addrs]", + "paramKeys": [] + } + } + }, + "/core/hosts/info": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.HostInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get host info", + "tags": [ + "Host" + ] + } + }, + "/core/hosts/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchPageWithGroup" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page host", + "tags": [ + "Host" + ] + } + }, + "/core/hosts/test/byid/:id": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "boolean" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Test host conn by host id", + "tags": [ + "Host" + ] + } + }, + "/core/hosts/test/byinfo": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.HostConnTest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "boolean" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Test host conn by info", + "tags": [ + "Host" + ] + } + }, + "/core/hosts/tree": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchForTree" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.HostTree" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load host tree", + "tags": [ + "Host" + ] + } + }, + "/core/hosts/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.HostOperate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.HostInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update host", + "tags": [ + "Host" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "addr" + ], + "formatEN": "update host [name][addr]", + "formatZH": "更新主机信息 [name][addr]", + "paramKeys": [] + } + } + }, + "/core/hosts/update/group": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangeHostGroup" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update host group", + "tags": [ + "Host" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "hosts", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "addr", + "output_value": "addr" + } + ], + "bodyKeys": [ + "id", + "group" + ], + "formatEN": "change host [addr] group =\u003e [group]", + "formatZH": "切换主机[addr]分组 =\u003e [group]", + "paramKeys": [] + } + } + }, + "/core/logs/clean": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CleanLog" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clean operation logs", + "tags": [ + "Logs" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "logType" + ], + "formatEN": "Clean the [logType] log information", + "formatZH": "清空 [logType] 日志信息", + "paramKeys": [] + } + } + }, + "/core/logs/login": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchLgLogWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page login logs", + "tags": [ + "Logs" + ] + } + }, + "/core/logs/operation": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchOpLogWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page operation logs", + "tags": [ + "Logs" + ] + } + }, + "/core/script": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ScriptOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Add script", + "tags": [ + "ScriptLibrary" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "add script [name]", + "formatZH": "添加脚本库脚本 [name]", + "paramKeys": [] + } + } + }, + "/core/script/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByIDs" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete script", + "tags": [ + "ScriptLibrary" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "script_librarys", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "name", + "output_value": "names" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete script [names]", + "formatZH": "删除脚本库脚本 [names]", + "paramKeys": [] + } + } + }, + "/core/script/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchPageWithGroup" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page script", + "tags": [ + "ScriptLibrary" + ] + } + }, + "/core/script/sync": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByTaskID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Sync script from remote", + "tags": [ + "ScriptLibrary" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "sync scripts", + "formatZH": "同步脚本库脚本", + "paramKeys": [] + } + } + }, + "/core/script/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ScriptOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update script", + "tags": [ + "ScriptLibrary" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "cronjobs", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "update script [name]", + "formatZH": "更新脚本库脚本 [name]", + "paramKeys": [] + } + } + }, + "/core/settings/api/config/generate/key": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "generate api key", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "generate api key", + "formatZH": "生成 API 接口密钥", + "paramKeys": [] + } + } + }, + "/core/settings/api/config/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ApiInterfaceConfig" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update api config", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "ipWhiteList" + ], + "formatEN": "update api config =\u003e IP White List: [ipWhiteList]", + "formatZH": "更新 API 接口配置 =\u003e IP 白名单: [ipWhiteList]", + "paramKeys": [] + } + } + }, + "/core/settings/apps/store/config": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.AppstoreConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get appstore config", + "tags": [ + "App" + ] + } + }, + "/core/settings/apps/store/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.AppstoreUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update appstore config", + "tags": [ + "App" + ] + } + }, + "/core/settings/bind/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BindInfo" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update system bind info", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "ipv6", + "bindAddress" + ], + "formatEN": "update system bind info =\u003e ipv6: [ipv6], 监听 IP: [bindAddress]", + "formatZH": "修改系统监听信息 =\u003e ipv6: [ipv6], 监听 IP: [bindAddress]", + "paramKeys": [] + } + } + }, + "/core/settings/by": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system setting by key", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/expired/handle": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PasswordUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Reset system password expired", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "reset an expired Password", + "formatZH": "重置过期密码", + "paramKeys": [] + } + } + }, + "/core/settings/interface": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system address", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/menu/default": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Default menu", + "tags": [ + "Menu Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Init menu.", + "formatZH": "初始化菜单", + "paramKeys": [] + } + } + }, + "/core/settings/menu/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SettingUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update system setting", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Hide advanced feature menu.", + "formatZH": "隐藏高级功能菜单", + "paramKeys": [] + } + } + }, + "/core/settings/mfa": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MfaCredential" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/mfa.Otp" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load mfa info", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/mfa/bind": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MfaCredential" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Bind mfa", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "bind mfa", + "formatZH": "mfa 绑定", + "paramKeys": [] + } + } + }, + "/core/settings/password/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PasswordUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update system password", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "update system password", + "formatZH": "修改系统密码", + "paramKeys": [] + } + } + }, + "/core/settings/port/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PortUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update system port", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "serverPort" + ], + "formatEN": "update system port =\u003e [serverPort]", + "formatZH": "修改系统端口 =\u003e [serverPort]", + "paramKeys": [] + } + } + }, + "/core/settings/proxy/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ProxyUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update proxy setting", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "proxyUrl", + "proxyPort" + ], + "formatEN": "set proxy [proxyPort]:[proxyPort].", + "formatZH": "服务器代理配置 [proxyPort]:[proxyPort]", + "paramKeys": [] + } + } + }, + "/core/settings/search": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.SettingInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system setting info", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/search/available": { + "get": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system available status", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/ssl/download": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Download system cert", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/ssl/info": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.SSLInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system cert info", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/ssl/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SSLUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update system ssl", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "ssl" + ], + "formatEN": "update system ssl =\u003e [ssl]", + "formatZH": "修改系统 ssl =\u003e [ssl]", + "paramKeys": [] + } + } + }, + "/core/settings/terminal/search": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.TerminalInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system terminal setting info", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/terminal/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.TerminalInfo" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update system terminal setting", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "update system terminal setting", + "formatZH": "修改系统终端配置", + "paramKeys": [] + } + } + }, + "/core/settings/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SettingUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update system setting", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "update system setting [key] =\u003e [value]", + "formatZH": "修改系统配置 [key] =\u003e [value]", + "paramKeys": [] + } + } + }, + "/core/settings/upgrade": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.UpgradeInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load upgrade info", + "tags": [ + "System Setting" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Upgrade" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Upgrade", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "version" + ], + "formatEN": "upgrade system =\u003e [version]", + "formatZH": "更新系统 =\u003e [version]", + "paramKeys": [] + } + } + }, + "/core/settings/upgrade/notes": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Upgrade" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load release notes by version", + "tags": [ + "System Setting" + ] + } + }, + "/core/settings/upgrade/releases": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.ReleasesNotes" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load upgrade notes", + "tags": [ + "System Setting" + ] + } + }, + "/cronjobs": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CronjobOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create cronjob", + "tags": [ + "Cronjob" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type", + "name" + ], + "formatEN": "create cronjob [type][name]", + "formatZH": "创建计划任务 [type][name]", + "paramKeys": [] + } + } + }, + "/cronjobs/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CronjobBatchDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete cronjob", + "tags": [ + "Cronjob" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "cronjobs", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "name", + "output_value": "names" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete cronjob [names]", + "formatZH": "删除计划任务 [names]", + "paramKeys": [] + } + } + }, + "/cronjobs/export": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByIDs" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Export cronjob list", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/group/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangeGroup" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update cronjob group", + "tags": [ + "Cronjob" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "cronjobs", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "update cronjob group [name]", + "formatZH": "更新计划任务分组 [name]", + "paramKeys": [] + } + } + }, + "/cronjobs/handle": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Handle cronjob once", + "tags": [ + "Cronjob" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "cronjobs", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "manually execute the cronjob [name]", + "formatZH": "手动执行计划任务 [name]", + "paramKeys": [] + } + } + }, + "/cronjobs/import": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CronjobImport" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Import cronjob list", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/load/info": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load cronjob info", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/next": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CronjobSpec" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load cronjob spec time", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/records/clean": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CronjobClean" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clean job records", + "tags": [ + "Cronjob" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "cronjobs", + "input_column": "id", + "input_value": "cronjobID", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "cronjobID" + ], + "formatEN": "clean cronjob [name] records", + "formatZH": "清空计划任务记录 [name]", + "paramKeys": [] + } + } + }, + "/cronjobs/records/log": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load Cronjob record log", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/script/options": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.ScriptOptions" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load script options", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageCronjob" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page cronjobs", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/search/records": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchRecord" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page job records", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/status": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CronjobUpdateStatus" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update cronjob status", + "tags": [ + "Cronjob" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "cronjobs", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id", + "status" + ], + "formatEN": "change the status of cronjob [name] to [status].", + "formatZH": "修改计划任务 [name] 状态为 [status]", + "paramKeys": [] + } + } + }, + "/cronjobs/stop": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Handle stop job", + "tags": [ + "Cronjob" + ] + } + }, + "/cronjobs/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CronjobOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update cronjob", + "tags": [ + "Cronjob" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "cronjobs", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "update cronjob [name]", + "formatZH": "更新计划任务 [name]", + "paramKeys": [] + } + } + }, + "/dashboard/app/launcher": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.AppLauncher" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load app launcher", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/app/launcher/option": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchByFilter" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.LauncherOption" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load app launcher options", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/app/launcher/show": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SettingUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update app Launcher", + "tags": [ + "Dashboard" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "app launcher [key] =\u003e show: [value]", + "formatZH": "首页应用 [key] =\u003e 显示:[value]", + "paramKeys": [] + } + } + }, + "/dashboard/base/:ioOption/:netOption": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "ioOption", + "required": true, + "type": "string" + }, + { + "description": "request", + "in": "path", + "name": "netOption", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.DashboardBase" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load dashboard base info", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/base/os": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.OsInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load os info", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/current/:ioOption/:netOption": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "ioOption", + "required": true, + "type": "string" + }, + { + "description": "request", + "in": "path", + "name": "netOption", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.DashboardCurrent" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load dashboard current info", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/current/node": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.NodeCurrent" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load dashboard current info for node", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/current/top/cpu": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.Process" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load top cpu processes", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/current/top/mem": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.Process" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load top memory processes", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/quick/change": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangeQuicks" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update quick jump", + "tags": [ + "Dashboard" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "change quick jump", + "formatZH": "切换快速跳转", + "paramKeys": [] + } + } + }, + "/dashboard/quick/option": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.QuickJump" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load quick jump options", + "tags": [ + "Dashboard" + ] + } + }, + "/dashboard/system/restart/:operation": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "operation", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "System restart", + "tags": [ + "Dashboard" + ] + } + }, + "/databases": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MysqlDBCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create mysql database", + "tags": [ + "Database Mysql" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "create mysql database [name]", + "formatZH": "创建 mysql 数据库 [name]", + "paramKeys": [] + } + } + }, + "/databases/bind": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BindUser" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Bind user of mysql database", + "tags": [ + "Database Mysql" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "database", + "username" + ], + "formatEN": "bind mysql database [database] [username]", + "formatZH": "绑定 mysql 数据库名 [database] [username]", + "paramKeys": [] + } + } + }, + "/databases/change/access": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangeDBInfo" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change mysql access", + "tags": [ + "Database Mysql" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "database_mysqls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update database [name] access", + "formatZH": "更新数据库 [name] 访问权限", + "paramKeys": [] + } + } + }, + "/databases/change/password": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangeDBInfo" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change mysql password", + "tags": [ + "Database Mysql" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "database_mysqls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update database [name] password", + "formatZH": "更新数据库 [name] 密码", + "paramKeys": [] + } + } + }, + "/databases/common/info": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithNameAndType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.DBBaseInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load base info", + "tags": [ + "Database Common" + ] + } + }, + "/databases/common/load/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithNameAndType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load Database conf", + "tags": [ + "Database Common" + ] + } + }, + "/databases/common/update/conf": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DBConfUpdateByFile" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update conf by upload file", + "tags": [ + "Database Common" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type", + "database" + ], + "formatEN": "update the [type] [database] database configuration information", + "formatZH": "更新 [type] 数据库 [database] 配置信息", + "paramKeys": [] + } + } + }, + "/databases/db": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DatabaseCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create database", + "tags": [ + "Database" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "type" + ], + "formatEN": "create database [name][type]", + "formatZH": "创建远程数据库 [name][type]", + "paramKeys": [] + } + } + }, + "/databases/db/:name": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.DatabaseInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get databases", + "tags": [ + "Database" + ] + } + }, + "/databases/db/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DatabaseCreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "boolean" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check database", + "tags": [ + "Database" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "type" + ], + "formatEN": "check if database [name][type] is connectable", + "formatZH": "检测远程数据库 [name][type] 连接性", + "paramKeys": [] + } + } + }, + "/databases/db/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DatabaseDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete database", + "tags": [ + "Database" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "databases", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "name", + "output_value": "names" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete database [names]", + "formatZH": "删除远程数据库 [names]", + "paramKeys": [] + } + } + }, + "/databases/db/del/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check before delete remote database", + "tags": [ + "Database" + ] + } + }, + "/databases/db/item/:type": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.DatabaseItem" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List databases", + "tags": [ + "Database" + ] + } + }, + "/databases/db/list/:type": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.DatabaseOption" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List databases", + "tags": [ + "Database" + ] + } + }, + "/databases/db/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DatabaseSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page databases", + "tags": [ + "Database" + ] + } + }, + "/databases/db/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.DatabaseUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update database", + "tags": [ + "Database" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "update database [name]", + "formatZH": "更新远程数据库 [name]", + "paramKeys": [] + } + } + }, + "/databases/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MysqlDBDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete mysql database", + "tags": [ + "Database Mysql" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "database_mysqls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "delete mysql database [name]", + "formatZH": "删除 mysql 数据库 [name]", + "paramKeys": [] + } + } + }, + "/databases/del/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MysqlDBDeleteCheck" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check before delete mysql database", + "tags": [ + "Database Mysql" + ] + } + }, + "/databases/description/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UpdateDescription" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update mysql database description", + "tags": [ + "Database Mysql" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "database_mysqls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id", + "description" + ], + "formatEN": "The description of the mysql database [name] is modified =\u003e [description]", + "formatZH": "mysql 数据库 [name] 描述信息修改 [description]", + "paramKeys": [] + } + } + }, + "/databases/format/options": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.MysqlFormatCollationOption" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List mysql database format collation options", + "tags": [ + "Database Mysql" + ] + } + }, + "/databases/load": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MysqlLoadDB" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load mysql database from remote", + "tags": [ + "Database Mysql" + ] + } + }, + "/databases/pg": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PostgresqlDBCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create postgresql database", + "tags": [ + "Database PostgreSQL" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "create postgresql database [name]", + "formatZH": "创建 postgresql 数据库 [name]", + "paramKeys": [] + } + } + }, + "/databases/pg/:database/load": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PostgresqlLoadDB" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load postgresql database from remote", + "tags": [ + "Database PostgreSQL" + ] + } + }, + "/databases/pg/bind": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PostgresqlBindUser" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Bind postgresql user", + "tags": [ + "Database PostgreSQL" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "username" + ], + "formatEN": "bind postgresql database [name] user [username]", + "formatZH": "绑定 postgresql 数据库 [name] 用户 [username]", + "paramKeys": [] + } + } + }, + "/databases/pg/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PostgresqlDBDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete postgresql database", + "tags": [ + "Database PostgreSQL" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "database_postgresqls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "delete postgresql database [name]", + "formatZH": "删除 postgresql 数据库 [name]", + "paramKeys": [] + } + } + }, + "/databases/pg/del/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PostgresqlDBDeleteCheck" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check before delete postgresql database", + "tags": [ + "Database PostgreSQL" + ] + } + }, + "/databases/pg/description": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UpdateDescription" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update postgresql database description", + "tags": [ + "Database PostgreSQL" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "database_postgresqls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id", + "description" + ], + "formatEN": "The description of the postgresql database [name] is modified =\u003e [description]", + "formatZH": "postgresql 数据库 [name] 描述信息修改 [description]", + "paramKeys": [] + } + } + }, + "/databases/pg/password": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangeDBInfo" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change postgresql password", + "tags": [ + "Database PostgreSQL" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "database_postgresqls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update database [name] password", + "formatZH": "更新数据库 [name] 密码", + "paramKeys": [] + } + } + }, + "/databases/pg/privileges": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangeDBInfo" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change postgresql privileges", + "tags": [ + "Database PostgreSQL" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "database", + "username" + ], + "formatEN": "Update [user] privileges of database [database]", + "formatZH": "更新数据库 [database] 用户 [username] 权限", + "paramKeys": [] + } + } + }, + "/databases/pg/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PostgresqlDBSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page postgresql databases", + "tags": [ + "Database PostgreSQL" + ] + } + }, + "/databases/redis/conf": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.LoadRedisStatus" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.RedisConf" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load redis conf", + "tags": [ + "Database Redis" + ] + } + }, + "/databases/redis/conf/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.RedisConfUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update redis conf", + "tags": [ + "Database Redis" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "update the redis database configuration information", + "formatZH": "更新 redis 数据库配置信息", + "paramKeys": [] + } + } + }, + "/databases/redis/install/cli": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Install redis-cli", + "tags": [ + "Database Redis" + ] + } + }, + "/databases/redis/password": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangeRedisPass" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change redis password", + "tags": [ + "Database Redis" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "change the password of the redis database", + "formatZH": "修改 redis 数据库密码", + "paramKeys": [] + } + } + }, + "/databases/redis/persistence/conf": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.LoadRedisStatus" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.RedisPersistence" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load redis persistence conf", + "tags": [ + "Database Redis" + ] + } + }, + "/databases/redis/persistence/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.RedisConfPersistenceUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update redis persistence conf", + "tags": [ + "Database Redis" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "redis database persistence configuration update", + "formatZH": "redis 数据库持久化配置更新", + "paramKeys": [] + } + } + }, + "/databases/redis/status": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.LoadRedisStatus" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.RedisStatus" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load redis status info", + "tags": [ + "Database Redis" + ] + } + }, + "/databases/remote": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithNameAndType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "boolean" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load mysql remote access", + "tags": [ + "Database Mysql" + ] + } + }, + "/databases/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MysqlDBSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page mysql databases", + "tags": [ + "Database Mysql" + ] + } + }, + "/databases/status": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithNameAndType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.MysqlStatus" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load mysql status info", + "tags": [ + "Database Mysql" + ] + } + }, + "/databases/variables": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithNameAndType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.MysqlVariables" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load mysql variables info", + "tags": [ + "Database Mysql" + ] + } + }, + "/databases/variables/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MysqlVariablesUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update mysql variables", + "tags": [ + "Database Mysql" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "adjust mysql database performance parameters", + "formatZH": "调整 mysql 数据库性能参数", + "paramKeys": [] + } + } + }, + "/files": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "Create dir or file [path]", + "formatZH": "创建文件/文件夹 [path]", + "paramKeys": [] + } + } + }, + "/files/batch/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FilePathsCheck" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.ExistFileInfo" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Batch check file exist", + "tags": [ + "File" + ] + } + }, + "/files/batch/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileBatchDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Batch delete file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "paths" + ], + "formatEN": "Batch delete dir or file [paths]", + "formatZH": "批量删除文件/文件夹 [paths]", + "paramKeys": [] + } + } + }, + "/files/batch/role": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileRoleReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Batch change file mode and owner", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "paths", + "mode", + "user", + "group" + ], + "formatEN": "Batch change file mode and owner [paths] =\u003e [mode]/[user]/[group]", + "formatZH": "批量修改文件权限和用户/组 [paths] =\u003e [mode]/[user]/[group]", + "paramKeys": [] + } + } + }, + "/files/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FilePathCheck" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "boolean" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check file exist", + "tags": [ + "File" + ] + } + }, + "/files/chunkdownload": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileDownload" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Chunk Download file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Download file [name]", + "formatZH": "下载文件 [name]", + "paramKeys": [] + } + } + }, + "/files/chunkupload": { + "post": { + "parameters": [ + { + "description": "request", + "in": "formData", + "name": "file", + "required": true, + "type": "file" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "ChunkUpload file", + "tags": [ + "File" + ] + } + }, + "/files/compress": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileCompress" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Compress file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Compress file [name]", + "formatZH": "压缩文件 [name]", + "paramKeys": [] + } + } + }, + "/files/content": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileContentReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.FileInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load file content", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "Load file content [path]", + "formatZH": "获取文件内容 [path]", + "paramKeys": [] + } + } + }, + "/files/convert": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileConvert" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Convert file", + "tags": [ + "File" + ] + } + }, + "/files/convert/log": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageInfo" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Convert file", + "tags": [ + "File" + ] + } + }, + "/files/decompress": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileDeCompress" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Decompress file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "Decompress file [path]", + "formatZH": "解压 [path]", + "paramKeys": [] + } + } + }, + "/files/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "Delete dir or file [path]", + "formatZH": "删除文件/文件夹 [path]", + "paramKeys": [] + } + } + }, + "/files/depth/size": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.DirSizeReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.DepthDirSizeRes" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Multi file size", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "Multi file size [path]", + "formatZH": "获取目录及其第一层子目录文件夹大小 [path]", + "paramKeys": [] + } + } + }, + "/files/download": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Download file", + "tags": [ + "File" + ] + } + }, + "/files/favorite": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FavoriteCreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/model.Favorite" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create favorite", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "收藏文件/文件夹 [path]", + "formatZH": "收藏文件/文件夹 [path]", + "paramKeys": [] + } + } + }, + "/files/favorite/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FavoriteDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete favorite", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "favorites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "path", + "output_value": "path" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "delete avorite [path]", + "formatZH": "删除收藏 [path]", + "paramKeys": [] + } + } + }, + "/files/favorite/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageInfo" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List favorites", + "tags": [ + "File" + ] + } + }, + "/files/mode": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change file mode", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path", + "mode" + ], + "formatEN": "Change mode [paths] =\u003e [mode]", + "formatZH": "修改权限 [paths] =\u003e [mode]", + "paramKeys": [] + } + } + }, + "/files/mount": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.DiskInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "system mount", + "tags": [ + "File" + ] + } + }, + "/files/move": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileMove" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Move file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "oldPaths", + "newPath" + ], + "formatEN": "Move [oldPaths] =\u003e [newPath]", + "formatZH": "移动文件 [oldPaths] =\u003e [newPath]", + "paramKeys": [] + } + } + }, + "/files/owner": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileRoleUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change file owner", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path", + "user", + "group" + ], + "formatEN": "Change owner [paths] =\u003e [user]/[group]", + "formatZH": "修改用户/组 [paths] =\u003e [user]/[group]", + "paramKeys": [] + } + } + }, + "/files/preview": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileContentReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.FileInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Preview file content", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "Preview file content [path]", + "formatZH": "预览文件内容 [path]", + "paramKeys": [] + } + } + }, + "/files/read": { + "post": { + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileReadByLineReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.FileLineContent" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Read file by Line", + "tags": [ + "File" + ] + } + }, + "/files/recycle/clear": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clear RecycleBin files", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "清空回收站", + "formatZH": "清空回收站", + "paramKeys": [] + } + } + }, + "/files/recycle/reduce": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.RecycleBinReduce" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Reduce RecycleBin files", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Reduce RecycleBin file [name]", + "formatZH": "还原回收站文件 [name]", + "paramKeys": [] + } + } + }, + "/files/recycle/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageInfo" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List RecycleBin files", + "tags": [ + "File" + ] + } + }, + "/files/recycle/status": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get RecycleBin status", + "tags": [ + "File" + ] + } + }, + "/files/rename": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileRename" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change file name", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "oldName", + "newName" + ], + "formatEN": "Rename [oldName] =\u003e [newName]", + "formatZH": "重命名 [oldName] =\u003e [newName]", + "paramKeys": [] + } + } + }, + "/files/save": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileEdit" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update file content", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "Update file content [path]", + "formatZH": "更新文件内容 [path]", + "paramKeys": [] + } + } + }, + "/files/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileOption" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.FileInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List files", + "tags": [ + "File" + ] + } + }, + "/files/size": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.DirSizeReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.DirSizeRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load file size", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path" + ], + "formatEN": "Load file size [path]", + "formatZH": "获取文件夹大小 [path]", + "paramKeys": [] + } + } + }, + "/files/tree": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileOption" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.FileTree" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load files tree", + "tags": [ + "File" + ] + } + }, + "/files/upload": { + "post": { + "parameters": [ + { + "description": "request", + "in": "formData", + "name": "file", + "required": true, + "type": "file" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Upload file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "path", + "file" + ], + "formatEN": "Upload file [path]/[file]", + "formatZH": "上传文件 [path]/[file]", + "paramKeys": [] + } + } + }, + "/files/upload/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.SearchUploadWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page file", + "tags": [ + "File" + ] + } + }, + "/files/user/group": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.UserGroupResponse" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "system user and group", + "tags": [ + "File" + ] + } + }, + "/files/wget": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FileWget" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.FileWgetRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Wget file", + "tags": [ + "File" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "url", + "path", + "name" + ], + "formatEN": "Download url =\u003e [path]/[name]", + "formatZH": "下载 url =\u003e [path]/[name]", + "paramKeys": [] + } + } + }, + "/groups": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.GroupCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create group", + "tags": [ + "System Group" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "type" + ], + "formatEN": "create group [name][type]", + "formatZH": "创建组 [name][type]", + "paramKeys": [] + } + } + }, + "/groups/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete group", + "tags": [ + "System Group" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "groups", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + }, + { + "db": "groups", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "type", + "output_value": "type" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "delete group [type][name]", + "formatZH": "删除组 [type][name]", + "paramKeys": [] + } + } + }, + "/groups/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.GroupSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.OperateByType" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List groups", + "tags": [ + "System Group" + ] + } + }, + "/groups/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.GroupUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update group", + "tags": [ + "System Group" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "type" + ], + "formatEN": "update group [name][type]", + "formatZH": "更新组 [name][type]", + "paramKeys": [] + } + } + }, + "/hosts/components/{name}": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "Component name to check (e.g., rsync, docker)", + "in": "path", + "name": "name", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.ComponentInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check if a system component exists", + "tags": [ + "Host" + ] + } + }, + "/hosts/disks": { + "get": { + "description": "Get information about all disks including partitioned and unpartitioned disks", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.CompleteDiskInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get complete disk information", + "tags": [ + "Disk Management" + ] + } + }, + "/hosts/disks/mount": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Mount partition to specified mount point", + "parameters": [ + { + "description": "mount request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.DiskMountRequest" + } + } + ], + "responses": { + "200": { + "description": "Disk mounted successfully", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Mount disk", + "tags": [ + "Disk Management" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "device", + "mountPoint" + ], + "formatEN": "Mount disk [device] to [mountPoint]", + "formatZH": "挂载磁盘 [device] 到 [mountPoint]", + "paramKeys": [] + } + } + }, + "/hosts/disks/partition": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Create partition and format disk with specified filesystem", + "parameters": [ + { + "description": "partition request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.DiskPartitionRequest" + } + } + ], + "responses": { + "200": { + "description": "Partition created successfully", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Partition disk", + "tags": [ + "Disk Management" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "device", + "filesystem", + "mountPoint" + ], + "formatEN": "Partition disk [device] with filesystem [filesystem], mount point [mountPoint]", + "formatZH": "对磁盘 [device] 进行分区,文件系统 [filesystem],挂载点 [mountPoint]", + "paramKeys": [] + } + } + }, + "/hosts/disks/unmount": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Unmount partition from mount point", + "parameters": [ + { + "description": "unmount request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.DiskUnmountRequest" + } + } + ], + "responses": { + "200": { + "description": "Disk unmounted successfully", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Unmount disk", + "tags": [ + "Disk Management" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "device", + "mountPoint" + ], + "formatEN": "Unmount disk [device] from [mountPoint]", + "formatZH": "卸载磁盘 [device] 从 [mountPoint]", + "paramKeys": [] + } + } + }, + "/hosts/firewall/base": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.FirewallBaseInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load firewall base info", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/firewall/batch": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BatchRuleOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Batch operate rule", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/firewall/filter/chain/status": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "load chain status with name", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/firewall/filter/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.IptablesOp" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Apply/Unload/Init iptables filter", + "tags": [ + "Firewall" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operate" + ], + "formatEN": "[operate] iptables filter firewall", + "formatZH": "[operate] iptables filter 防火墙", + "paramKeys": [] + } + } + }, + "/hosts/firewall/filter/rule/batch": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.IptablesBatchOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Batch operate iptables filter rules", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/firewall/filter/rule/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.IptablesRuleOp" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate iptables filter rule", + "tags": [ + "Firewall" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operation", + "chain" + ], + "formatEN": "[operation] filter rule to [chain]", + "formatZH": "[operation] filter规则到 [chain]", + "paramKeys": [] + } + } + }, + "/hosts/firewall/filter/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchPageWithType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "search iptables filter rules", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/firewall/forward": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ForwardRuleOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate forward rule", + "tags": [ + "Firewall" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "update port forward rules", + "formatZH": "更新端口转发规则", + "paramKeys": [] + } + } + }, + "/hosts/firewall/ip": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.AddrRuleOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate Ip rule", + "tags": [ + "Firewall" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "strategy", + "address" + ], + "formatEN": "create address rules [strategy][address]", + "formatZH": "添加 ip 规则 [strategy] [address]", + "paramKeys": [] + } + } + }, + "/hosts/firewall/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.FirewallOperation" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate firewall", + "tags": [ + "Firewall" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operation" + ], + "formatEN": "[operation] firewall", + "formatZH": "[operation] 防火墙", + "paramKeys": [] + } + } + }, + "/hosts/firewall/port": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PortRuleOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create group", + "tags": [ + "Firewall" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "port", + "strategy" + ], + "formatEN": "create port rules [strategy][port]", + "formatZH": "添加端口规则 [strategy] [port]", + "paramKeys": [] + } + } + }, + "/hosts/firewall/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.RuleSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page firewall rules", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/firewall/update/addr": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.AddrRuleUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update Ip rule", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/firewall/update/description": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UpdateFirewallDescription" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update rule description", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/firewall/update/port": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PortRuleUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update port rule", + "tags": [ + "Firewall" + ] + } + }, + "/hosts/monitor/clean": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clean monitor data", + "tags": [ + "Monitor" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "clean monitor datas", + "formatZH": "清空监控数据", + "paramKeys": [] + } + } + }, + "/hosts/monitor/gpu/search": { + "post": { + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MonitorGPUSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.MonitorGPUData" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load monitor data", + "tags": [ + "Monitor" + ] + } + }, + "/hosts/monitor/search": { + "post": { + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MonitorSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.MonitorData" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load monitor data", + "tags": [ + "Monitor" + ] + } + }, + "/hosts/monitor/setting": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.MonitorSetting" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load monitor setting", + "tags": [ + "Monitor" + ] + } + }, + "/hosts/monitor/setting/update": { + "post": { + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MonitorSettingUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update monitor setting", + "tags": [ + "Monitor" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "update default monitor [name]-[value]", + "formatZH": "修改默认监控网卡 [name]-[value]", + "paramKeys": [] + } + } + }, + "/hosts/ssh/cert": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.RootCertOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Generate host SSH secret", + "tags": [ + "SSH" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "generate SSH secret", + "formatZH": "生成 SSH 密钥 ", + "paramKeys": [] + } + } + }, + "/hosts/ssh/cert/delete": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ForceDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete host SSH secret", + "tags": [ + "SSH" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "delete SSH secret", + "formatZH": "删除 SSH 密钥 ", + "paramKeys": [] + } + } + }, + "/hosts/ssh/cert/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load host SSH secret", + "tags": [ + "SSH" + ] + } + }, + "/hosts/ssh/cert/sync": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Sycn host SSH secret", + "tags": [ + "SSH" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "sync SSH secret", + "formatZH": "同步 SSH 密钥 ", + "paramKeys": [] + } + } + }, + "/hosts/ssh/cert/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.RootCertOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update host SSH secret", + "tags": [ + "SSH" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "generate SSH secret", + "formatZH": "生成 SSH 密钥 ", + "paramKeys": [] + } + } + }, + "/hosts/ssh/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load host SSH conf", + "tags": [ + "SSH" + ] + } + }, + "/hosts/ssh/file/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SSHConf" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update host SSH setting by file", + "tags": [ + "SSH" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key" + ], + "formatEN": "update SSH conf [key]", + "formatZH": "修改 SSH 配置文件 [key]", + "paramKeys": [] + } + } + }, + "/hosts/ssh/log": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchSSHLog" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load host SSH logs", + "tags": [ + "SSH" + ] + } + }, + "/hosts/ssh/log/export": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchSSHLog" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Export host SSH logs", + "tags": [ + "SSH" + ] + } + }, + "/hosts/ssh/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Operate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate SSH", + "tags": [ + "SSH" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operation" + ], + "formatEN": "[operation] SSH", + "formatZH": "[operation] SSH ", + "paramKeys": [] + } + } + }, + "/hosts/ssh/search": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.SSHInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load host SSH setting info", + "tags": [ + "SSH" + ] + } + }, + "/hosts/ssh/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SSHUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update host SSH setting", + "tags": [ + "SSH" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "newValue" + ], + "formatEN": "update SSH setting [key] =\u003e [newValue]", + "formatZH": "修改 SSH 配置 [key] =\u003e [newValue]", + "paramKeys": [] + } + } + }, + "/hosts/tool": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.HostToolReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.HostToolRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get tool status", + "tags": [ + "Host tool" + ] + } + }, + "/hosts/tool/config": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.HostToolConfig" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.HostToolConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get tool config", + "tags": [ + "Host tool" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operate" + ], + "formatEN": "[operate] tool config", + "formatZH": "[operate] 主机工具配置文件 ", + "paramKeys": [] + } + } + }, + "/hosts/tool/init": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.HostToolCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create Host tool Config", + "tags": [ + "Host tool" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type" + ], + "formatEN": "create [type] config", + "formatZH": "创建 [type] 配置", + "paramKeys": [] + } + } + }, + "/hosts/tool/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.HostToolReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate tool", + "tags": [ + "Host tool" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operate", + "type" + ], + "formatEN": "[operate] [type]", + "formatZH": "[operate] [type] ", + "paramKeys": [] + } + } + }, + "/hosts/tool/supervisor/process": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.SupervisorProcessConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get Supervisor process config", + "tags": [ + "Host tool" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.SupervisorProcessConfig" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create Supervisor process", + "tags": [ + "Host tool" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operate" + ], + "formatEN": "[operate] process", + "formatZH": "[operate] 守护进程 ", + "paramKeys": [] + } + } + }, + "/hosts/tool/supervisor/process/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.SupervisorProcessFileReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get Supervisor process config file", + "tags": [ + "Host tool" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operate" + ], + "formatEN": "[operate] Supervisor Process Config file", + "formatZH": "[operate] Supervisor 进程文件 ", + "paramKeys": [] + } + } + }, + "/logs/system/files": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system log files", + "tags": [ + "Logs" + ] + } + }, + "/logs/tasks/executing/count": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "integer" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get the number of executing tasks", + "tags": [ + "TaskLog" + ] + } + }, + "/logs/tasks/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchTaskLogReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page task logs", + "tags": [ + "TaskLog" + ] + } + }, + "/openresty": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxFile" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load OpenResty conf", + "tags": [ + "OpenResty" + ] + } + }, + "/openresty/build": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxBuildReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Build OpenResty", + "tags": [ + "OpenResty" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Build OpenResty", + "formatZH": "构建 OpenResty", + "paramKeys": [] + } + } + }, + "/openresty/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxConfigFileUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update OpenResty conf by upload file", + "tags": [ + "OpenResty" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Update nginx conf", + "formatZH": "更新 nginx 配置", + "paramKeys": [] + } + } + }, + "/openresty/https": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxConfigRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get default HTTPs status", + "tags": [ + "OpenResty" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxDefaultHTTPSUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate default HTTPs", + "tags": [ + "OpenResty" + ] + } + }, + "/openresty/modules": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxBuildConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get OpenResty modules", + "tags": [ + "OpenResty" + ] + } + }, + "/openresty/modules/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxModuleUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update OpenResty module", + "tags": [ + "OpenResty" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Update OpenResty module", + "formatZH": "更新 OpenResty 模块", + "paramKeys": [] + } + } + }, + "/openresty/scope": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxScopeReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.NginxParam" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load partial OpenResty conf", + "tags": [ + "OpenResty" + ] + } + }, + "/openresty/status": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxStatus" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load OpenResty status info", + "tags": [ + "OpenResty" + ] + } + }, + "/openresty/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxConfigUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update OpenResty conf", + "tags": [ + "OpenResty" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteId", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteId" + ], + "formatEN": "Update nginx conf [domain]", + "formatZH": "更新 nginx 配置 [domain]", + "paramKeys": [] + } + } + }, + "/process/stop": { + "post": { + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.ProcessReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Stop Process", + "tags": [ + "Process" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "PID" + ], + "formatEN": "结束进程 [PID]", + "formatZH": "结束进程 [PID]", + "paramKeys": [] + } + } + }, + "/process/{pid}": { + "get": { + "parameters": [ + { + "description": "PID", + "in": "path", + "name": "pid", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get Process Info By PID", + "tags": [ + "Process" + ] + } + }, + "/runtimes": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.RuntimeCreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/model.Runtime" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create runtime", + "tags": [ + "Runtime" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Create runtime [name]", + "formatZH": "创建运行环境 [name]", + "paramKeys": [] + } + } + }, + "/runtimes/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.RuntimeDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get runtime", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.RuntimeDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete runtime", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "id" + ], + "formatEN": "Delete runtime [name]", + "formatZH": "删除运行环境 [name]", + "paramKeys": [] + } + } + }, + "/runtimes/installed/delete/check/:id": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.AppResource" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete runtime", + "tags": [ + "Website" + ] + } + }, + "/runtimes/node/modules": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NodeModuleReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.NodeModule" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get Node modules", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/node/modules/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NodeModuleReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate Node modules", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/node/package": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NodePackageReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.PackageScripts" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get Node package scripts", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.RuntimeOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate runtime", + "tags": [ + "Runtime" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "id" + ], + "formatEN": "Operate runtime [name]", + "formatZH": "操作运行环境 [name]", + "paramKeys": [] + } + } + }, + "/runtimes/php/:id/extensions": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.PHPExtensionRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get php runtime extension", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/config": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPConfigUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update runtime php conf", + "tags": [ + "Runtime" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "[domain] PHP conf update", + "formatZH": "[domain] PHP 配置修改", + "paramKeys": [] + } + } + }, + "/runtimes/php/config/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.PHPConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load php runtime conf", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/container/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/request.PHPContainerConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get PHP container config", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/container/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPContainerConfig" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update PHP container config", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/extensions": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPExtensionsCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create Extensions", + "tags": [ + "PHP Extensions" + ] + } + }, + "/runtimes/php/extensions/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPExtensionsDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete Extensions", + "tags": [ + "PHP Extensions" + ] + } + }, + "/runtimes/php/extensions/install": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPExtensionInstallReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Install php extension", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/extensions/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPExtensionsSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page Extensions", + "tags": [ + "PHP Extensions" + ] + } + }, + "/runtimes/php/extensions/uninstall": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPExtensionInstallReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "UnInstall php extension", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/extensions/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPExtensionsUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update Extensions", + "tags": [ + "PHP Extensions" + ] + } + }, + "/runtimes/php/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPFileReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.FileInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get php conf file", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/fpm/config": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.FPMConfig" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update fpm config", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/fpm/config/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/request.FPMConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get fpm config", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/fpm/status/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "additionalProperties": true, + "type": "object" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get PHP runtime status", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/php/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPFileUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update php conf file", + "tags": [ + "Runtime" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteId", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteId" + ], + "formatEN": "Nginx conf update [domain]", + "formatZH": "php 配置修改 [domain]", + "paramKeys": [] + } + } + }, + "/runtimes/remark": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.RuntimeRemark" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update runtime remark", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.RuntimeSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List runtimes", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/supervisor/process": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPSupervisorProcessConfig" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate supervisor process", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/supervisor/process/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.SupervisorProcessConfig" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get supervisor process", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/supervisor/process/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.PHPSupervisorProcessFileReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate supervisor process file", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/sync": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Sync runtime status", + "tags": [ + "Runtime" + ] + } + }, + "/runtimes/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.RuntimeUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update runtime", + "tags": [ + "Runtime" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Update runtime [name]", + "formatZH": "更新运行环境 [name]", + "paramKeys": [] + } + } + }, + "/settings/basedir": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load local backup dir", + "tags": [ + "System Setting" + ] + } + }, + "/settings/description/save": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.CommonDescription" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Save common description", + "tags": [ + "System Setting" + ] + } + }, + "/settings/get/{key}": { + "get": { + "parameters": [ + { + "description": "key", + "in": "path", + "name": "key", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.SettingInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system setting by key", + "tags": [ + "System Setting" + ] + } + }, + "/settings/search": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.SettingInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system setting info", + "tags": [ + "System Setting" + ] + } + }, + "/settings/search/available": { + "get": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system available status", + "tags": [ + "System Setting" + ] + } + }, + "/settings/snapshot": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SnapshotCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create system snapshot", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "from", + "description" + ], + "formatEN": "Create system backup [description] to [from]", + "formatZH": "创建系统快照 [description] 到 [from]", + "paramKeys": [] + } + } + }, + "/settings/snapshot/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SnapshotBatchDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete system backup", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "snapshots", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "Delete system backup [name]", + "formatZH": "删除系统快照 [name]", + "paramKeys": [] + } + } + }, + "/settings/snapshot/description/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UpdateDescription" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update snapshot description", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "snapshots", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id", + "description" + ], + "formatEN": "The description of the snapshot [name] is modified =\u003e [description]", + "formatZH": "快照 [name] 描述信息修改 [description]", + "paramKeys": [] + } + } + }, + "/settings/snapshot/import": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SnapshotImport" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Import system snapshot", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "from", + "names" + ], + "formatEN": "Sync system snapshots [names] from [from]", + "formatZH": "从 [from] 同步系统快照 [names]", + "paramKeys": [] + } + } + }, + "/settings/snapshot/load": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.SnapshotData" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load system snapshot data", + "tags": [ + "System Setting" + ] + } + }, + "/settings/snapshot/recover": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SnapshotRecover" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Recover system backup", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "snapshots", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Recover from system backup [name]", + "formatZH": "从系统快照 [name] 恢复", + "paramKeys": [] + } + } + }, + "/settings/snapshot/recreate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Recreate system snapshot", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "snapshots", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "recrete the snapshot [name]", + "formatZH": "重试创建快照 [name]", + "paramKeys": [] + } + } + }, + "/settings/snapshot/rollback": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SnapshotRecover" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Rollback system backup", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "snapshots", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Rollback from system backup [name]", + "formatZH": "从系统快照 [name] 回滚", + "paramKeys": [] + } + } + }, + "/settings/snapshot/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageSnapshot" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page system snapshot", + "tags": [ + "System Setting" + ] + } + }, + "/settings/ssh": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Save local conn info", + "tags": [ + "System Setting" + ] + } + }, + "/settings/ssh/check/info": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "boolean" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check local conn info", + "tags": [ + "System Setting" + ] + } + }, + "/settings/ssh/conn": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.SSHConnData" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load local conn", + "tags": [ + "System Setting" + ] + } + }, + "/settings/ssh/conn/default": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SSHDefaultConn" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update local is conn", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "defaultConn" + ], + "formatEN": "update system default conn [defaultConn]", + "formatZH": "本地终端默认连接 [defaultConn]", + "paramKeys": [] + } + } + }, + "/settings/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SettingUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update system setting", + "tags": [ + "System Setting" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "update system setting [key] =\u003e [value]", + "formatZH": "修改系统配置 [key] =\u003e [value]", + "paramKeys": [] + } + } + }, + "/toolbox/clam": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ClamCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create clam", + "tags": [ + "Clam" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "path" + ], + "formatEN": "create clam [name][path]", + "formatZH": "创建扫描规则 [name][path]", + "paramKeys": [] + } + } + }, + "/toolbox/clam/base": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.ClamBaseInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load clam base info", + "tags": [ + "Clam" + ] + } + }, + "/toolbox/clam/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ClamDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete clam", + "tags": [ + "Clam" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "clams", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "name", + "output_value": "names" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete clam [names]", + "formatZH": "删除扫描规则 [names]", + "paramKeys": [] + } + } + }, + "/toolbox/clam/file/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ClamFileReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load clam file", + "tags": [ + "Clam" + ] + } + }, + "/toolbox/clam/file/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UpdateByNameAndFile" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update clam file", + "tags": [ + "Clam" + ] + } + }, + "/toolbox/clam/handle": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Handle clam scan", + "tags": [ + "Clam" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "clams", + "input_column": "id", + "input_value": "id", + "isList": true, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "handle clam scan [name]", + "formatZH": "执行病毒扫描 [name]", + "paramKeys": [] + } + } + }, + "/toolbox/clam/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Operate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate Clam", + "tags": [ + "Clam" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operation" + ], + "formatEN": "[operation] FTP", + "formatZH": "[operation] Clam", + "paramKeys": [] + } + } + }, + "/toolbox/clam/record/clean": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperateByID" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clean clam record", + "tags": [ + "Clam" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "clams", + "input_column": "id", + "input_value": "id", + "isList": true, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "clean clam record [name]", + "formatZH": "清空扫描报告 [name]", + "paramKeys": [] + } + } + }, + "/toolbox/clam/record/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ClamLogSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page clam record", + "tags": [ + "Clam" + ] + } + }, + "/toolbox/clam/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchClamWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page clam", + "tags": [ + "Clam" + ] + } + }, + "/toolbox/clam/status/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ClamUpdateStatus" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update clam status", + "tags": [ + "Clam" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "clams", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id", + "status" + ], + "formatEN": "change the status of clam [name] to [status].", + "formatZH": "修改扫描规则 [name] 状态为 [status]", + "paramKeys": [] + } + } + }, + "/toolbox/clam/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ClamUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update clam", + "tags": [ + "Clam" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name", + "path" + ], + "formatEN": "update clam [name][path]", + "formatZH": "修改扫描规则 [name][path]", + "paramKeys": [] + } + } + }, + "/toolbox/clean": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "items": { + "$ref": "#/definitions/dto.Clean" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clean system", + "tags": [ + "Device" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Clean system junk files", + "formatZH": "清理系统垃圾文件", + "paramKeys": [] + } + } + }, + "/toolbox/device/base": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.DeviceBaseInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load device base info", + "tags": [ + "Device" + ] + } + }, + "/toolbox/device/check/dns": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SettingUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "boolean" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check device DNS conf", + "tags": [ + "Device" + ] + } + }, + "/toolbox/device/conf": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.OperationWithName" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "load conf", + "tags": [ + "Device" + ] + } + }, + "/toolbox/device/update/byconf": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UpdateByNameAndFile" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update device conf by file", + "tags": [ + "Device" + ] + } + }, + "/toolbox/device/update/conf": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SettingUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update device", + "tags": [ + "Device" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "update device conf [key] =\u003e [value]", + "formatZH": "修改主机参数 [key] =\u003e [value]", + "paramKeys": [] + } + } + }, + "/toolbox/device/update/host": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update device hosts", + "tags": [ + "Device" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "update device host [key] =\u003e [value]", + "formatZH": "修改主机 Host [key] =\u003e [value]", + "paramKeys": [] + } + } + }, + "/toolbox/device/update/passwd": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ChangePasswd" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update device passwd", + "tags": [ + "Device" + ] + } + }, + "/toolbox/device/update/swap": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SwapHelper" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update device swap", + "tags": [ + "Device" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operate", + "path" + ], + "formatEN": "[operate] device swap [path]", + "formatZH": "[operate] 主机 swap [path]", + "paramKeys": [] + } + } + }, + "/toolbox/device/users": { + "get": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load user list", + "tags": [ + "Device" + ] + } + }, + "/toolbox/device/zone/options": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "list time zone options", + "tags": [ + "Device" + ] + } + }, + "/toolbox/fail2ban/base": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.Fail2BanBaseInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load fail2ban base info", + "tags": [ + "Fail2ban" + ] + } + }, + "/toolbox/fail2ban/load/conf": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load fail2ban conf", + "tags": [ + "Fail2ban" + ] + } + }, + "/toolbox/fail2ban/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Operate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate fail2ban", + "tags": [ + "Fail2ban" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operation" + ], + "formatEN": "[operation] Fail2ban", + "formatZH": "[operation] Fail2ban", + "paramKeys": [] + } + } + }, + "/toolbox/fail2ban/operate/sshd": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Fail2BanSet" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate sshd of fail2ban", + "tags": [ + "Fail2ban" + ] + } + }, + "/toolbox/fail2ban/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Fail2BanSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page fail2ban ip list", + "tags": [ + "Fail2ban" + ] + } + }, + "/toolbox/fail2ban/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Fail2BanUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update fail2ban conf", + "tags": [ + "Fail2ban" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "update fail2ban conf [key] =\u003e [value]", + "formatZH": "修改 Fail2ban 配置 [key] =\u003e [value]", + "paramKeys": [] + } + } + }, + "/toolbox/fail2ban/update/byconf": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.UpdateByFile" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update fail2ban conf by file", + "tags": [ + "Fail2ban" + ] + } + }, + "/toolbox/ftp": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.FtpCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create FTP user", + "tags": [ + "FTP" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "user", + "path" + ], + "formatEN": "create FTP [user][path]", + "formatZH": "创建 FTP 账户 [user][path]", + "paramKeys": [] + } + } + }, + "/toolbox/ftp/base": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.FtpBaseInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load FTP base info", + "tags": [ + "FTP" + ] + } + }, + "/toolbox/ftp/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BatchDeleteReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete FTP user", + "tags": [ + "FTP" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "ftps", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "user", + "output_value": "users" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "delete FTP users [users]", + "formatZH": "删除 FTP 账户 [users]", + "paramKeys": [] + } + } + }, + "/toolbox/ftp/log/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.FtpLogSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load FTP operation log", + "tags": [ + "FTP" + ] + } + }, + "/toolbox/ftp/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.Operate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate FTP", + "tags": [ + "FTP" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "operation" + ], + "formatEN": "[operation] FTP", + "formatZH": "[operation] FTP", + "paramKeys": [] + } + } + }, + "/toolbox/ftp/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.SearchWithPage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page FTP user", + "tags": [ + "FTP" + ] + } + }, + "/toolbox/ftp/sync": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.BatchDeleteReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Sync FTP user", + "tags": [ + "FTP" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "sync FTP users", + "formatZH": "同步 FTP 账户", + "paramKeys": [] + } + } + }, + "/toolbox/ftp/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.FtpUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update FTP user", + "tags": [ + "FTP" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "user", + "path" + ], + "formatEN": "update FTP [user][path]", + "formatZH": "修改 FTP 账户 [user][path]", + "paramKeys": [] + } + } + }, + "/toolbox/scan": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.CleanData" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Scan system", + "tags": [ + "Device" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "scan System Junk Files", + "formatZH": "扫描系统垃圾文件", + "paramKeys": [] + } + } + }, + "/websites": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create website", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "alias" + ], + "formatEN": "Create website [alias]", + "formatZH": "创建网站 [alias]", + "paramKeys": [] + } + } + }, + "/websites/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search website by id", + "tags": [ + "Website" + ] + } + }, + "/websites/:id/config/:type": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.FileInfo" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search website nginx by id", + "tags": [ + "Website Nginx" + ] + } + }, + "/websites/:id/https": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteHTTPS" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load https conf", + "tags": [ + "Website HTTPS" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteHTTPSOp" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteHTTPS" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update https conf", + "tags": [ + "Website HTTPS" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteId", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteId" + ], + "formatEN": "Update website https [domain] conf", + "formatZH": "更新网站 [domain] https 配置", + "paramKeys": [] + } + } + }, + "/websites/acme": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteAcmeAccountCreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteAcmeAccountDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create website acme account", + "tags": [ + "Website Acme" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "email" + ], + "formatEN": "Create website acme [email]", + "formatZH": "创建网站 acme [email]", + "paramKeys": [] + } + } + }, + "/websites/acme/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteResourceReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete website acme account", + "tags": [ + "Website Acme" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_acme_accounts", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "email", + "output_value": "email" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Delete website acme [email]", + "formatZH": "删除网站 acme [email]", + "paramKeys": [] + } + } + }, + "/websites/acme/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageInfo" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page website acme accounts", + "tags": [ + "Website Acme" + ] + } + }, + "/websites/acme/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteAcmeAccountUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteAcmeAccountDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update website acme account", + "tags": [ + "Website Acme" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_acme_accounts", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "email", + "output_value": "email" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update acme [email]", + "formatZH": "更新 acme [email]", + "paramKeys": [] + } + } + }, + "/websites/auths": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxAuthReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxAuthRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get AuthBasic conf", + "tags": [ + "Website" + ] + } + }, + "/websites/auths/path": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxAuthReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxPathAuthRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get AuthBasic conf", + "tags": [ + "Website" + ] + } + }, + "/websites/auths/path/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxPathAuthUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get AuthBasic conf", + "tags": [ + "Website" + ] + } + }, + "/websites/auths/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxAuthUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get AuthBasic conf", + "tags": [ + "Website" + ] + } + }, + "/websites/batch/group": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.BatchWebsiteGroup" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Batch set website group", + "tags": [ + "Website" + ] + } + }, + "/websites/batch/https": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.BatchWebsiteHttps" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Batch set HTTPS for websites", + "tags": [ + "Website" + ] + } + }, + "/websites/batch/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.BatchWebsiteOp" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Batch operate websites", + "tags": [ + "Website" + ] + } + }, + "/websites/ca": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteCACreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/request.WebsiteCACreate" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create website ca", + "tags": [ + "Website CA" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Create website ca [name]", + "formatZH": "创建网站 ca [name]", + "paramKeys": [] + } + } + }, + "/websites/ca/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteCommonReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete website ca", + "tags": [ + "Website CA" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_cas", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Delete website ca [name]", + "formatZH": "删除网站 ca [name]", + "paramKeys": [] + } + } + }, + "/websites/ca/download": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteResourceReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Download CA file", + "tags": [ + "Website CA" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_cas", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "download ca file [name]", + "formatZH": "下载 CA 证书文件 [name]", + "paramKeys": [] + } + } + }, + "/websites/ca/obtain": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteCAObtain" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Obtain SSL", + "tags": [ + "Website CA" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_cas", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Obtain SSL [name]", + "formatZH": "自签 SSL 证书 [name]", + "paramKeys": [] + } + } + }, + "/websites/ca/renew": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteCAObtain" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Obtain SSL", + "tags": [ + "Website CA" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_cas", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Obtain SSL [name]", + "formatZH": "自签 SSL 证书 [name]", + "paramKeys": [] + } + } + }, + "/websites/ca/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteCASearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page website ca", + "tags": [ + "Website CA" + ] + } + }, + "/websites/ca/{id}": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "id", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteCADTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get website ca", + "tags": [ + "Website CA" + ] + } + }, + "/websites/check": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteInstallCheckReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.WebsitePreInstallCheck" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Check before create website", + "tags": [ + "Website" + ] + } + }, + "/websites/config": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxScopeReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteNginxConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Load nginx conf", + "tags": [ + "Website Nginx" + ] + } + }, + "/websites/config/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxConfigUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update nginx conf", + "tags": [ + "Website Nginx" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteId", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteId" + ], + "formatEN": "Nginx conf update [domain]", + "formatZH": "nginx 配置修改 [domain]", + "paramKeys": [] + } + } + }, + "/websites/cors/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.CorsConfigReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update CORS Config", + "tags": [ + "Website" + ] + } + }, + "/websites/cors/{id}": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "id", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/request.CorsConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get CORS Config", + "tags": [ + "Website" + ] + } + }, + "/websites/crosssite": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.CrossSiteAccessOp" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate Cross Site Access", + "tags": [ + "Website" + ] + } + }, + "/websites/databases": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.Database" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get databases", + "tags": [ + "Website" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.ChangeDatabase" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change website database", + "tags": [ + "Website" + ] + } + }, + "/websites/default/html/:type": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteHtmlRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get default html", + "tags": [ + "Website" + ] + } + }, + "/websites/default/html/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteHtmlUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update default html", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type" + ], + "formatEN": "Update default html", + "formatZH": "更新默认 html", + "paramKeys": [] + } + } + }, + "/websites/default/server": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteDefaultUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Change default server", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id", + "operate" + ], + "formatEN": "Change default server =\u003e [domain]", + "formatZH": "修改默认 server =\u003e [domain]", + "paramKeys": [] + } + } + }, + "/websites/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete website", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Delete website [domain]", + "formatZH": "删除网站 [domain]", + "paramKeys": [] + } + } + }, + "/websites/dir": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteCommonReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteDirConfig" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get website dir", + "tags": [ + "Website" + ] + } + }, + "/websites/dir/permission": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteUpdateDirPermission" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update Site Dir permission", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update domain [domain] dir permission", + "formatZH": "更新网站 [domain] 目录权限", + "paramKeys": [] + } + } + }, + "/websites/dir/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteUpdateDir" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update Site Dir", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update domain [domain] dir", + "formatZH": "更新网站 [domain] 目录", + "paramKeys": [] + } + } + }, + "/websites/dns": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteDnsAccountCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create website dns account", + "tags": [ + "Website DNS" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Create website dns [name]", + "formatZH": "创建网站 dns [name]", + "paramKeys": [] + } + } + }, + "/websites/dns/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteResourceReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete website dns account", + "tags": [ + "Website DNS" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_dns_accounts", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "name", + "output_value": "name" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Delete website dns [name]", + "formatZH": "删除网站 dns [name]", + "paramKeys": [] + } + } + }, + "/websites/dns/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.PageInfo" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page website dns accounts", + "tags": [ + "Website DNS" + ] + } + }, + "/websites/dns/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteDnsAccountUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update website dns account", + "tags": [ + "Website DNS" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "name" + ], + "formatEN": "Update website dns [name]", + "formatZH": "更新网站 dns [name]", + "paramKeys": [] + } + } + }, + "/websites/domains": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteDomainCreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/model.WebsiteDomain" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create website domain", + "tags": [ + "Website Domain" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "domain" + ], + "formatEN": "Create domain [domain]", + "formatZH": "创建域名 [domain]", + "paramKeys": [] + } + } + }, + "/websites/domains/:websiteId": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "websiteId", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/model.WebsiteDomain" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search website domains by websiteId", + "tags": [ + "Website Domain" + ] + } + }, + "/websites/domains/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteDomainDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete website domain", + "tags": [ + "Website Domain" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_domains", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Delete domain [domain]", + "formatZH": "删除域名 [domain]", + "paramKeys": [] + } + } + }, + "/websites/domains/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteDomainUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update website domain", + "tags": [ + "Website Domain" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_domains", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update domain [domain]", + "formatZH": "更新域名 [domain]", + "paramKeys": [] + } + } + }, + "/websites/exec/composer": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.ExecComposerReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Exec Composer", + "tags": [ + "Website" + ] + } + }, + "/websites/lbs": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteCommonReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/dto.NginxUpstream" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get website upstreams", + "tags": [ + "Website" + ] + } + }, + "/websites/lbs/create": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteLBCreate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create website upstream", + "tags": [ + "Website" + ] + } + }, + "/websites/lbs/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteLBDelete" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete website upstream", + "tags": [ + "Website" + ] + } + }, + "/websites/lbs/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteLBUpdateFile" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update website upstream file", + "tags": [ + "Website" + ] + } + }, + "/websites/lbs/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteLBUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update website upstream", + "tags": [ + "Website" + ] + } + }, + "/websites/leech": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxCommonReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxAntiLeechRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get AntiLeech conf", + "tags": [ + "Website" + ] + } + }, + "/websites/leech/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxAntiLeechUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update AntiLeech", + "tags": [ + "Website" + ] + } + }, + "/websites/list": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.WebsiteDTO" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List websites", + "tags": [ + "Website" + ] + } + }, + "/websites/log": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteLogReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteLog" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate website log", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id", + "operate" + ], + "formatEN": "[domain][operate] logs", + "formatZH": "[domain][operate] 日志", + "paramKeys": [] + } + } + }, + "/websites/nginx/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteNginxUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update website nginx conf", + "tags": [ + "Website Nginx" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "[domain] Nginx conf update", + "formatZH": "[domain] Nginx 配置修改", + "paramKeys": [] + } + } + }, + "/websites/operate": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteOp" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate website", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id", + "operate" + ], + "formatEN": "[operate] website [domain]", + "formatZH": "[operate] 网站 [domain]", + "paramKeys": [] + } + } + }, + "/websites/options": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.WebsiteOption" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List website names", + "tags": [ + "Website" + ] + } + }, + "/websites/php/version": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsitePHPVersionReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update php version", + "tags": [ + "Website PHP" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteId", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteId" + ], + "formatEN": "php version update [domain]", + "formatZH": "php 版本变更 [domain]", + "paramKeys": [] + } + } + }, + "/websites/proxies": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteProxyReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/request.WebsiteProxyConfig" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get proxy conf", + "tags": [ + "Website" + ] + } + }, + "/websites/proxies/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxProxyUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update proxy file", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteID", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteID" + ], + "formatEN": "Nginx conf proxy file update [domain]", + "formatZH": "更新反向代理文件 [domain]", + "paramKeys": [] + } + } + }, + "/websites/proxies/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteProxyConfig" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update proxy conf", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update domain [domain] proxy config", + "formatZH": "修改网站 [domain] 反向代理配置 ", + "paramKeys": [] + } + } + }, + "/websites/proxy/clear": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Clear Website proxy cache", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [], + "formatEN": "Clear nginx proxy cache", + "formatZH": "清理 Openresty 代理缓存", + "paramKeys": [] + } + } + }, + "/websites/proxy/config": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxProxyCacheUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "update website proxy cache config", + "tags": [ + "Website" + ] + } + }, + "/websites/proxy/config/{id}": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "id", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxProxyCache" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get website proxy cache config" + } + }, + "/websites/realip/config": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteRealIP" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Set Real IP", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteID", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteID" + ], + "formatEN": "Modify the real IP configuration of [domain] website", + "formatZH": "修改 [domain] 网站真实IP配置 ", + "paramKeys": [] + } + } + }, + "/websites/realip/config/{id}": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "id", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteRealIP" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get Real IP Config", + "tags": [ + "Website" + ] + } + }, + "/websites/redirect": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteProxyReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.NginxRedirectConfig" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get redirect conf", + "tags": [ + "Website" + ] + } + }, + "/websites/redirect/file": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxRedirectUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update redirect file", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteID", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteID" + ], + "formatEN": "Nginx conf redirect file update [domain]", + "formatZH": "更新重定向文件 [domain]", + "paramKeys": [] + } + } + }, + "/websites/redirect/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxRedirectReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update redirect conf", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteID", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteID" + ], + "formatEN": "Update domain [domain] redirect config", + "formatZH": "修改网站 [domain] 重定向配置 ", + "paramKeys": [] + } + } + }, + "/websites/resource/{id}": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "id", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.Resource" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get website resource", + "tags": [ + "Website" + ] + } + }, + "/websites/rewrite": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxRewriteReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.NginxRewriteRes" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Get rewrite conf", + "tags": [ + "Website" + ] + } + }, + "/websites/rewrite/custom": { + "get": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "List custom rewrite", + "tags": [ + "Website" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.CustomRewriteOperate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Operate custom rewrite", + "tags": [ + "Website" + ] + } + }, + "/websites/rewrite/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.NginxRewriteUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update rewrite conf", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "websites", + "input_column": "id", + "input_value": "websiteID", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "websiteID" + ], + "formatEN": "Nginx conf rewrite update [domain]", + "formatZH": "伪静态配置修改 [domain]", + "paramKeys": [] + } + } + }, + "/websites/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageResult" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page websites", + "tags": [ + "Website" + ] + } + }, + "/websites/ssl": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteSSLCreate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/request.WebsiteSSLCreate" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Create website ssl", + "tags": [ + "Website SSL" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "primaryDomain" + ], + "formatEN": "Create website ssl [primaryDomain]", + "formatZH": "创建网站 ssl [primaryDomain]", + "paramKeys": [] + } + } + }, + "/websites/ssl/:id": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteSSLDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search website ssl by id", + "tags": [ + "Website SSL" + ] + } + }, + "/websites/ssl/del": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteBatchDelReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Delete website ssl", + "tags": [ + "Website SSL" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_ssls", + "input_column": "id", + "input_value": "ids", + "isList": true, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "ids" + ], + "formatEN": "Delete ssl [domain]", + "formatZH": "删除 ssl [domain]", + "paramKeys": [] + } + } + }, + "/websites/ssl/download": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteResourceReq" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Download SSL file", + "tags": [ + "Website SSL" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_ssls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "download ssl file [domain]", + "formatZH": "下载证书文件 [domain]", + "paramKeys": [] + } + } + }, + "/websites/ssl/obtain": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteSSLApply" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Apply ssl", + "tags": [ + "Website SSL" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_ssls", + "input_column": "id", + "input_value": "ID", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "ID" + ], + "formatEN": "apply ssl [domain]", + "formatZH": "申请证书 [domain]", + "paramKeys": [] + } + } + }, + "/websites/ssl/resolve": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteDNSReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.WebsiteDNSRes" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Resolve website ssl", + "tags": [ + "Website SSL" + ] + } + }, + "/websites/ssl/search": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteSSLSearch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/response.WebsiteSSLDTO" + }, + "type": "array" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Page website ssl", + "tags": [ + "Website SSL" + ] + } + }, + "/websites/ssl/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteSSLUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update ssl", + "tags": [ + "Website SSL" + ], + "x-panel-log": { + "BeforeFunctions": [ + { + "db": "website_ssls", + "input_column": "id", + "input_value": "id", + "isList": false, + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "bodyKeys": [ + "id" + ], + "formatEN": "Update ssl config [domain]", + "formatZH": "更新证书设置 [domain]", + "paramKeys": [] + } + } + }, + "/websites/ssl/upload": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteSSLUpload" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Upload ssl", + "tags": [ + "Website SSL" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type" + ], + "formatEN": "Upload ssl [type]", + "formatZH": "上传 ssl [type]", + "paramKeys": [] + } + } + }, + "/websites/ssl/upload/file": { + "post": { + "consumes": [ + "multipart/form-data" + ], + "parameters": [ + { + "description": "type", + "in": "formData", + "name": "type", + "required": true, + "type": "string" + }, + { + "description": "description", + "in": "formData", + "name": "description", + "type": "string" + }, + { + "description": "sslID", + "in": "formData", + "name": "sslID", + "type": "string" + }, + { + "description": "privateKeyFile", + "in": "formData", + "name": "privateKeyFile", + "required": true, + "type": "file" + }, + { + "description": "certificateFile", + "in": "formData", + "name": "certificateFile", + "required": true, + "type": "file" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Upload SSL file", + "tags": [ + "Website SSL" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "type" + ], + "formatEN": "Upload ssl file [type]", + "formatZH": "上传 ssl 文件 [type]", + "paramKeys": [] + } + } + }, + "/websites/ssl/website/:websiteId": { + "get": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "path", + "name": "websiteId", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.WebsiteSSLDTO" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Search website ssl by website id", + "tags": [ + "Website SSL" + ] + } + }, + "/websites/stream/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.StreamUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update Stream Config", + "tags": [ + "Website" + ] + } + }, + "/websites/update": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request.WebsiteUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "Timestamp": [] + } + ], + "summary": "Update website", + "tags": [ + "Website" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "primaryDomain" + ], + "formatEN": "Update website [primaryDomain]", + "formatZH": "更新网站 [primaryDomain]", + "paramKeys": [] + } + } + } + }, + "definitions": { + "dto.AddrRuleOperate": { + "properties": { + "address": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "operation": { + "enum": [ + "add", + "remove" + ], + "type": "string" + }, + "strategy": { + "enum": [ + "accept", + "drop" + ], + "type": "string" + } + }, + "required": [ + "address", + "operation", + "strategy" + ], + "type": "object" + }, + "dto.AddrRuleUpdate": { + "properties": { + "newRule": { + "$ref": "#/definitions/dto.AddrRuleOperate" + }, + "oldRule": { + "$ref": "#/definitions/dto.AddrRuleOperate" + } + }, + "type": "object" + }, + "dto.ApiInterfaceConfig": { + "properties": { + "apiInterfaceStatus": { + "type": "string" + }, + "apiKey": { + "type": "string" + }, + "apiKeyValidityTime": { + "type": "string" + }, + "ipWhiteList": { + "type": "string" + } + }, + "type": "object" + }, + "dto.AppConfigVersion": { + "properties": { + "additionalProperties": {}, + "downloadCallBackUrl": { + "type": "string" + }, + "downloadUrl": { + "type": "string" + }, + "lastModified": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.AppDefine": { + "properties": { + "additionalProperties": { + "$ref": "#/definitions/dto.AppProperty" + }, + "icon": { + "type": "string" + }, + "lastModified": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "readMe": { + "type": "string" + }, + "versions": { + "items": { + "$ref": "#/definitions/dto.AppConfigVersion" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.AppInstallInfo": { + "properties": { + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.AppLauncher": { + "properties": { + "description": { + "type": "string" + }, + "detail": { + "items": { + "$ref": "#/definitions/dto.InstallDetail" + }, + "type": "array" + }, + "icon": { + "type": "string" + }, + "isInstall": { + "type": "boolean" + }, + "isRecommend": { + "type": "boolean" + }, + "key": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "recommend": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "dto.AppList": { + "properties": { + "additionalProperties": { + "$ref": "#/definitions/dto.ExtraProperties" + }, + "apps": { + "items": { + "$ref": "#/definitions/dto.AppDefine" + }, + "type": "array" + }, + "lastModified": { + "type": "integer" + }, + "valid": { + "type": "boolean" + }, + "violations": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.AppProperty": { + "properties": { + "Required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "architectures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "crossVersionUpdate": { + "type": "boolean" + }, + "deprecated": { + "type": "number" + }, + "description": { + "$ref": "#/definitions/dto.Locale" + }, + "document": { + "type": "string" + }, + "github": { + "type": "string" + }, + "gpuSupport": { + "type": "boolean" + }, + "key": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "memoryRequired": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "recommend": { + "type": "integer" + }, + "shortDescEn": { + "type": "string" + }, + "shortDescZh": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "version": { + "type": "number" + }, + "website": { + "type": "string" + } + }, + "type": "object" + }, + "dto.AppResource": { + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "dto.AppVersion": { + "properties": { + "detailId": { + "type": "integer" + }, + "dockerCompose": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.AppstoreConfig": { + "properties": { + "uninstallDeleteBackup": { + "type": "string" + }, + "uninstallDeleteImage": { + "type": "string" + }, + "upgradeBackup": { + "type": "string" + } + }, + "type": "object" + }, + "dto.AppstoreUpdate": { + "properties": { + "scope": { + "enum": [ + "UninstallDeleteImage", + "UpgradeBackup", + "UninstallDeleteBackup" + ], + "type": "string" + }, + "status": { + "enum": [ + "Disable", + "Enable" + ], + "type": "string" + } + }, + "required": [ + "scope", + "status" + ], + "type": "object" + }, + "dto.BackupClientInfo": { + "properties": { + "client_id": { + "type": "string" + }, + "client_secret": { + "type": "string" + }, + "redirect_uri": { + "type": "string" + } + }, + "type": "object" + }, + "dto.BackupOperate": { + "properties": { + "accessKey": { + "type": "string" + }, + "backupPath": { + "type": "string" + }, + "bucket": { + "type": "string" + }, + "credential": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "isPublic": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "rememberAuth": { + "type": "boolean" + }, + "type": { + "type": "string" + }, + "vars": { + "type": "string" + } + }, + "required": [ + "type", + "vars" + ], + "type": "object" + }, + "dto.BackupOption": { + "properties": { + "id": { + "type": "integer" + }, + "isPublic": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "dto.BatchDelete": { + "properties": { + "force": { + "type": "boolean" + }, + "names": { + "items": { + "type": "string" + }, + "type": "array" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "names" + ], + "type": "object" + }, + "dto.BatchDeleteReq": { + "properties": { + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "required": [ + "ids" + ], + "type": "object" + }, + "dto.BatchRuleOperate": { + "properties": { + "rules": { + "items": { + "$ref": "#/definitions/dto.PortRuleOperate" + }, + "type": "array" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "dto.BindInfo": { + "properties": { + "bindAddress": { + "type": "string" + }, + "ipv6": { + "enum": [ + "Enable", + "Disable" + ], + "type": "string" + } + }, + "required": [ + "bindAddress", + "ipv6" + ], + "type": "object" + }, + "dto.BindUser": { + "properties": { + "database": { + "type": "string" + }, + "db": { + "type": "string" + }, + "password": { + "type": "string" + }, + "permission": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "database", + "db", + "password", + "permission", + "username" + ], + "type": "object" + }, + "dto.CaptchaResponse": { + "properties": { + "captchaID": { + "type": "string" + }, + "imagePath": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ChangeDBInfo": { + "properties": { + "database": { + "type": "string" + }, + "from": { + "enum": [ + "local", + "remote" + ], + "type": "string" + }, + "id": { + "type": "integer" + }, + "type": { + "enum": [ + "mysql", + "mariadb", + "postgresql", + "redis", + "mysql-cluster", + "postgresql-cluster", + "redis-cluster" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "database", + "from", + "type", + "value" + ], + "type": "object" + }, + "dto.ChangeGroup": { + "properties": { + "groupID": { + "type": "integer" + }, + "id": { + "type": "integer" + } + }, + "required": [ + "groupID", + "id" + ], + "type": "object" + }, + "dto.ChangeHostGroup": { + "properties": { + "groupID": { + "type": "integer" + }, + "id": { + "type": "integer" + } + }, + "required": [ + "groupID", + "id" + ], + "type": "object" + }, + "dto.ChangePasswd": { + "properties": { + "passwd": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ChangeQuicks": { + "properties": { + "quicks": { + "items": { + "$ref": "#/definitions/dto.QuickJump" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.ChangeRedisPass": { + "properties": { + "database": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "database" + ], + "type": "object" + }, + "dto.ClamBaseInfo": { + "properties": { + "freshIsActive": { + "type": "boolean" + }, + "freshIsExist": { + "type": "boolean" + }, + "freshVersion": { + "type": "string" + }, + "isActive": { + "type": "boolean" + }, + "isExist": { + "type": "boolean" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ClamCreate": { + "properties": { + "alertCount": { + "type": "integer" + }, + "alertMethod": { + "type": "string" + }, + "alertTitle": { + "type": "string" + }, + "description": { + "type": "string" + }, + "infectedDir": { + "type": "string" + }, + "infectedStrategy": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "spec": { + "type": "string" + }, + "status": { + "type": "string" + }, + "timeout": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.ClamDelete": { + "properties": { + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "removeInfected": { + "type": "boolean" + } + }, + "required": [ + "ids" + ], + "type": "object" + }, + "dto.ClamFileReq": { + "properties": { + "name": { + "type": "string" + }, + "tail": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "dto.ClamLogSearch": { + "properties": { + "clamID": { + "type": "integer" + }, + "endTime": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "startTime": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.ClamUpdate": { + "properties": { + "alertCount": { + "type": "integer" + }, + "alertMethod": { + "type": "string" + }, + "alertTitle": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "infectedDir": { + "type": "string" + }, + "infectedStrategy": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "spec": { + "type": "string" + }, + "timeout": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.ClamUpdateStatus": { + "properties": { + "id": { + "type": "integer" + }, + "status": { + "type": "string" + } + }, + "type": "object" + }, + "dto.Clean": { + "properties": { + "name": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "treeType": { + "type": "string" + } + }, + "type": "object" + }, + "dto.CleanData": { + "properties": { + "backupClean": { + "items": { + "$ref": "#/definitions/dto.CleanTree" + }, + "type": "array" + }, + "containerClean": { + "items": { + "$ref": "#/definitions/dto.CleanTree" + }, + "type": "array" + }, + "downloadClean": { + "items": { + "$ref": "#/definitions/dto.CleanTree" + }, + "type": "array" + }, + "systemClean": { + "items": { + "$ref": "#/definitions/dto.CleanTree" + }, + "type": "array" + }, + "systemLogClean": { + "items": { + "$ref": "#/definitions/dto.CleanTree" + }, + "type": "array" + }, + "uploadClean": { + "items": { + "$ref": "#/definitions/dto.CleanTree" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.CleanLog": { + "properties": { + "logType": { + "enum": [ + "login", + "operation" + ], + "type": "string" + } + }, + "required": [ + "logType" + ], + "type": "object" + }, + "dto.CleanTree": { + "properties": { + "children": { + "items": { + "$ref": "#/definitions/dto.CleanTree" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "isCheck": { + "type": "boolean" + }, + "isRecommend": { + "type": "boolean" + }, + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "dto.CommandInfo": { + "properties": { + "command": { + "type": "string" + }, + "groupBelong": { + "type": "string" + }, + "groupID": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "dto.CommandOperate": { + "properties": { + "command": { + "type": "string" + }, + "groupBelong": { + "type": "string" + }, + "groupID": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "command", + "name" + ], + "type": "object" + }, + "dto.CommandTree": { + "properties": { + "children": { + "items": { + "$ref": "#/definitions/dto.CommandTree" + }, + "type": "array" + }, + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "dto.CommonBackup": { + "properties": { + "description": { + "type": "string" + }, + "detailName": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "secret": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "type": { + "enum": [ + "app", + "mysql", + "mariadb", + "redis", + "website", + "postgresql", + "mysql-cluster", + "postgresql-cluster", + "redis-cluster" + ], + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "dto.CommonDescription": { + "properties": { + "description": { + "type": "string" + }, + "detailType": { + "type": "string" + }, + "id": { + "type": "string" + }, + "isPinned": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "dto.CommonRecover": { + "properties": { + "backupRecordID": { + "type": "integer" + }, + "detailName": { + "type": "string" + }, + "downloadAccountID": { + "type": "integer" + }, + "file": { + "type": "string" + }, + "name": { + "type": "string" + }, + "secret": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "timeout": { + "type": "integer" + }, + "type": { + "enum": [ + "app", + "mysql", + "mariadb", + "redis", + "website", + "postgresql", + "mysql-cluster", + "postgresql-cluster", + "redis-cluster" + ], + "type": "string" + } + }, + "required": [ + "downloadAccountID", + "type" + ], + "type": "object" + }, + "dto.ComposeCreate": { + "properties": { + "env": { + "type": "string" + }, + "file": { + "type": "string" + }, + "from": { + "enum": [ + "edit", + "path", + "template" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "template": { + "type": "integer" + } + }, + "required": [ + "from" + ], + "type": "object" + }, + "dto.ComposeLogClean": { + "properties": { + "detailPath": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + } + }, + "required": [ + "name", + "path" + ], + "type": "object" + }, + "dto.ComposeOperation": { + "properties": { + "force": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "operation": { + "enum": [ + "up", + "start", + "restart", + "stop", + "down", + "delete" + ], + "type": "string" + }, + "path": { + "type": "string" + }, + "withFile": { + "type": "boolean" + } + }, + "required": [ + "name", + "operation" + ], + "type": "object" + }, + "dto.ComposeTemplateBatch": { + "properties": { + "templates": { + "items": { + "$ref": "#/definitions/dto.ComposeTemplateCreate" + }, + "type": "array" + } + }, + "required": [ + "templates" + ], + "type": "object" + }, + "dto.ComposeTemplateCreate": { + "properties": { + "content": { + "type": "string" + }, + "description": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "dto.ComposeTemplateInfo": { + "properties": { + "content": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ComposeTemplateUpdate": { + "properties": { + "content": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.ComposeUpdate": { + "properties": { + "content": { + "type": "string" + }, + "detailPath": { + "type": "string" + }, + "env": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + } + }, + "required": [ + "content", + "name", + "path" + ], + "type": "object" + }, + "dto.ContainerCommit": { + "properties": { + "author": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "containerID": { + "type": "string" + }, + "containerName": { + "type": "string" + }, + "newImageName": { + "type": "string" + }, + "pause": { + "type": "boolean" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "containerID" + ], + "type": "object" + }, + "dto.ContainerCreateByCommand": { + "properties": { + "command": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ContainerItemStats": { + "properties": { + "buildCacheReclaimable": { + "type": "integer" + }, + "buildCacheUsage": { + "type": "integer" + }, + "containerReclaimable": { + "type": "integer" + }, + "containerUsage": { + "type": "integer" + }, + "imageReclaimable": { + "type": "integer" + }, + "imageUsage": { + "type": "integer" + }, + "sizeRootFs": { + "type": "integer" + }, + "sizeRw": { + "type": "integer" + }, + "volumeReclaimable": { + "type": "integer" + }, + "volumeUsage": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.ContainerListStats": { + "properties": { + "containerID": { + "type": "string" + }, + "cpuPercent": { + "type": "number" + }, + "cpuTotalUsage": { + "type": "integer" + }, + "memoryCache": { + "type": "integer" + }, + "memoryLimit": { + "type": "integer" + }, + "memoryPercent": { + "type": "number" + }, + "memoryUsage": { + "type": "integer" + }, + "percpuUsage": { + "type": "integer" + }, + "systemUsage": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.ContainerNetwork": { + "properties": { + "ipv4": { + "type": "string" + }, + "ipv6": { + "type": "string" + }, + "macAddr": { + "type": "string" + }, + "network": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ContainerOperate": { + "properties": { + "autoRemove": { + "type": "boolean" + }, + "cmd": { + "items": { + "type": "string" + }, + "type": "array" + }, + "cpuShares": { + "type": "integer" + }, + "dns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "domainName": { + "type": "string" + }, + "entrypoint": { + "items": { + "type": "string" + }, + "type": "array" + }, + "env": { + "items": { + "type": "string" + }, + "type": "array" + }, + "exposedPorts": { + "items": { + "$ref": "#/definitions/dto.PortHelper" + }, + "type": "array" + }, + "forcePull": { + "type": "boolean" + }, + "hostname": { + "type": "string" + }, + "image": { + "type": "string" + }, + "labels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "memory": { + "type": "number" + }, + "name": { + "type": "string" + }, + "nanoCPUs": { + "type": "number" + }, + "networks": { + "items": { + "$ref": "#/definitions/dto.ContainerNetwork" + }, + "type": "array" + }, + "openStdin": { + "type": "boolean" + }, + "privileged": { + "type": "boolean" + }, + "publishAllPorts": { + "type": "boolean" + }, + "restartPolicy": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "tty": { + "type": "boolean" + }, + "user": { + "type": "string" + }, + "volumes": { + "items": { + "$ref": "#/definitions/dto.VolumeHelper" + }, + "type": "array" + }, + "workingDir": { + "type": "string" + } + }, + "required": [ + "image", + "name" + ], + "type": "object" + }, + "dto.ContainerOperation": { + "properties": { + "names": { + "items": { + "type": "string" + }, + "type": "array" + }, + "operation": { + "enum": [ + "up", + "start", + "stop", + "restart", + "kill", + "pause", + "unpause", + "remove" + ], + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "names", + "operation" + ], + "type": "object" + }, + "dto.ContainerOptions": { + "properties": { + "name": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ContainerPrune": { + "properties": { + "pruneType": { + "enum": [ + "container", + "image", + "volume", + "network", + "buildcache" + ], + "type": "string" + }, + "taskID": { + "type": "string" + }, + "withTagAll": { + "type": "boolean" + } + }, + "required": [ + "pruneType" + ], + "type": "object" + }, + "dto.ContainerRename": { + "properties": { + "name": { + "type": "string" + }, + "newName": { + "type": "string" + } + }, + "required": [ + "name", + "newName" + ], + "type": "object" + }, + "dto.ContainerStats": { + "properties": { + "cache": { + "type": "number" + }, + "cpuPercent": { + "type": "number" + }, + "ioRead": { + "type": "number" + }, + "ioWrite": { + "type": "number" + }, + "memory": { + "type": "number" + }, + "networkRX": { + "type": "number" + }, + "networkTX": { + "type": "number" + }, + "shotTime": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ContainerStatus": { + "properties": { + "composeCount": { + "type": "integer" + }, + "composeTemplateCount": { + "type": "integer" + }, + "containerCount": { + "type": "integer" + }, + "created": { + "type": "integer" + }, + "dead": { + "type": "integer" + }, + "exited": { + "type": "integer" + }, + "imageCount": { + "type": "integer" + }, + "networkCount": { + "type": "integer" + }, + "paused": { + "type": "integer" + }, + "removing": { + "type": "integer" + }, + "repoCount": { + "type": "integer" + }, + "restarting": { + "type": "integer" + }, + "running": { + "type": "integer" + }, + "volumeCount": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.ContainerUpgrade": { + "properties": { + "forcePull": { + "type": "boolean" + }, + "image": { + "type": "string" + }, + "names": { + "items": { + "type": "string" + }, + "type": "array" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "image", + "names" + ], + "type": "object" + }, + "dto.CronjobBatchDelete": { + "properties": { + "cleanData": { + "type": "boolean" + }, + "cleanRemoteData": { + "type": "boolean" + }, + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "required": [ + "ids" + ], + "type": "object" + }, + "dto.CronjobClean": { + "properties": { + "cleanData": { + "type": "boolean" + }, + "cleanRemoteData": { + "type": "boolean" + }, + "cronjobID": { + "type": "integer" + }, + "isDelete": { + "type": "boolean" + } + }, + "required": [ + "cronjobID" + ], + "type": "object" + }, + "dto.CronjobImport": { + "properties": { + "cronjobs": { + "items": { + "$ref": "#/definitions/dto.CronjobTrans" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.CronjobOperate": { + "properties": { + "alertCount": { + "type": "integer" + }, + "alertMethod": { + "type": "string" + }, + "alertTitle": { + "type": "string" + }, + "appID": { + "type": "string" + }, + "command": { + "type": "string" + }, + "containerName": { + "type": "string" + }, + "dbName": { + "type": "string" + }, + "dbType": { + "type": "string" + }, + "downloadAccountID": { + "type": "integer" + }, + "exclusionRules": { + "type": "string" + }, + "executor": { + "type": "string" + }, + "groupID": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "ignoreErr": { + "type": "boolean" + }, + "isDir": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "retainCopies": { + "minimum": 1, + "type": "integer" + }, + "retryTimes": { + "minimum": 0, + "type": "integer" + }, + "scopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "script": { + "type": "string" + }, + "scriptID": { + "type": "integer" + }, + "scriptMode": { + "type": "string" + }, + "secret": { + "type": "string" + }, + "snapshotRule": { + "$ref": "#/definitions/dto.SnapshotRule" + }, + "sourceAccountIDs": { + "type": "string" + }, + "sourceDir": { + "type": "string" + }, + "spec": { + "type": "string" + }, + "specCustom": { + "type": "boolean" + }, + "timeout": { + "minimum": 1, + "type": "integer" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user": { + "type": "string" + }, + "website": { + "type": "string" + } + }, + "required": [ + "name", + "spec", + "type" + ], + "type": "object" + }, + "dto.CronjobSpec": { + "properties": { + "spec": { + "type": "string" + } + }, + "required": [ + "spec" + ], + "type": "object" + }, + "dto.CronjobTrans": { + "properties": { + "alertCount": { + "type": "integer" + }, + "alertMethod": { + "type": "string" + }, + "alertTitle": { + "type": "string" + }, + "apps": { + "items": { + "$ref": "#/definitions/dto.TransHelper" + }, + "type": "array" + }, + "command": { + "type": "string" + }, + "containerName": { + "type": "string" + }, + "dbName": { + "items": { + "$ref": "#/definitions/dto.TransHelper" + }, + "type": "array" + }, + "dbType": { + "type": "string" + }, + "downloadAccount": { + "type": "string" + }, + "exclusionRules": { + "type": "string" + }, + "executor": { + "type": "string" + }, + "groupID": { + "type": "integer" + }, + "ignoreErr": { + "type": "boolean" + }, + "isDir": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "retainCopies": { + "type": "integer" + }, + "retryTimes": { + "type": "integer" + }, + "script": { + "type": "string" + }, + "scriptMode": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "secret": { + "type": "string" + }, + "snapshotRule": { + "$ref": "#/definitions/dto.SnapshotTransHelper" + }, + "sourceAccounts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sourceDir": { + "type": "string" + }, + "spec": { + "type": "string" + }, + "specCustom": { + "type": "boolean" + }, + "timeout": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user": { + "type": "string" + }, + "websites": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.CronjobUpdateStatus": { + "properties": { + "id": { + "type": "integer" + }, + "status": { + "type": "string" + } + }, + "required": [ + "id", + "status" + ], + "type": "object" + }, + "dto.DBBaseInfo": { + "properties": { + "containerName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "port": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.DBConfUpdateByFile": { + "properties": { + "database": { + "type": "string" + }, + "file": { + "type": "string" + }, + "type": { + "enum": [ + "mysql", + "mariadb", + "postgresql", + "redis", + "mysql-cluster", + "postgresql-cluster", + "redis-cluster" + ], + "type": "string" + } + }, + "required": [ + "database", + "type" + ], + "type": "object" + }, + "dto.DaemonJsonConf": { + "properties": { + "cgroupDriver": { + "type": "string" + }, + "experimental": { + "type": "boolean" + }, + "fixedCidrV6": { + "type": "string" + }, + "insecureRegistries": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ip6Tables": { + "type": "boolean" + }, + "iptables": { + "type": "boolean" + }, + "ipv6": { + "type": "boolean" + }, + "isSwarm": { + "type": "boolean" + }, + "liveRestore": { + "type": "boolean" + }, + "logMaxFile": { + "type": "string" + }, + "logMaxSize": { + "type": "string" + }, + "registryMirrors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.DaemonJsonUpdateByFile": { + "properties": { + "file": { + "type": "string" + } + }, + "type": "object" + }, + "dto.DashboardBase": { + "properties": { + "appInstalledNumber": { + "type": "integer" + }, + "cpuCores": { + "type": "integer" + }, + "cpuLogicalCores": { + "type": "integer" + }, + "cpuMhz": { + "type": "number" + }, + "cpuModelName": { + "type": "string" + }, + "cronjobNumber": { + "type": "integer" + }, + "currentInfo": { + "$ref": "#/definitions/dto.DashboardCurrent" + }, + "databaseNumber": { + "type": "integer" + }, + "hostname": { + "type": "string" + }, + "ipV4Addr": { + "type": "string" + }, + "kernelArch": { + "type": "string" + }, + "kernelVersion": { + "type": "string" + }, + "os": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "platformFamily": { + "type": "string" + }, + "platformVersion": { + "type": "string" + }, + "prettyDistro": { + "type": "string" + }, + "quickJump": { + "items": { + "$ref": "#/definitions/dto.QuickJump" + }, + "type": "array" + }, + "systemProxy": { + "type": "string" + }, + "virtualizationSystem": { + "type": "string" + }, + "websiteNumber": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.DashboardCurrent": { + "properties": { + "cpuDetailedPercent": { + "items": { + "type": "number" + }, + "type": "array" + }, + "cpuPercent": { + "items": { + "type": "number" + }, + "type": "array" + }, + "cpuTotal": { + "type": "integer" + }, + "cpuUsed": { + "type": "number" + }, + "cpuUsedPercent": { + "type": "number" + }, + "diskData": { + "items": { + "$ref": "#/definitions/dto.DiskInfo" + }, + "type": "array" + }, + "gpuData": { + "items": { + "$ref": "#/definitions/dto.GPUInfo" + }, + "type": "array" + }, + "ioCount": { + "type": "integer" + }, + "ioReadBytes": { + "type": "integer" + }, + "ioReadTime": { + "type": "integer" + }, + "ioWriteBytes": { + "type": "integer" + }, + "ioWriteTime": { + "type": "integer" + }, + "load1": { + "type": "number" + }, + "load15": { + "type": "number" + }, + "load5": { + "type": "number" + }, + "loadUsagePercent": { + "type": "number" + }, + "memoryAvailable": { + "type": "integer" + }, + "memoryCache": { + "type": "integer" + }, + "memoryFree": { + "type": "integer" + }, + "memoryShard": { + "type": "integer" + }, + "memoryTotal": { + "type": "integer" + }, + "memoryUsed": { + "type": "integer" + }, + "memoryUsedPercent": { + "type": "number" + }, + "netBytesRecv": { + "type": "integer" + }, + "netBytesSent": { + "type": "integer" + }, + "procs": { + "type": "integer" + }, + "shotTime": { + "type": "string" + }, + "swapMemoryAvailable": { + "type": "integer" + }, + "swapMemoryTotal": { + "type": "integer" + }, + "swapMemoryUsed": { + "type": "integer" + }, + "swapMemoryUsedPercent": { + "type": "number" + }, + "timeSinceUptime": { + "type": "string" + }, + "topCPUItems": { + "items": { + "$ref": "#/definitions/dto.Process" + }, + "type": "array" + }, + "topMemItems": { + "items": { + "$ref": "#/definitions/dto.Process" + }, + "type": "array" + }, + "uptime": { + "type": "integer" + }, + "xpuData": { + "items": { + "$ref": "#/definitions/dto.XPUInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.DataTree": { + "properties": { + "children": { + "items": { + "$ref": "#/definitions/dto.DataTree" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "isCheck": { + "type": "boolean" + }, + "isDisable": { + "type": "boolean" + }, + "isLocal": { + "type": "boolean" + }, + "key": { + "type": "string" + }, + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "relationItemID": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.DatabaseCreate": { + "properties": { + "address": { + "type": "string" + }, + "clientCert": { + "type": "string" + }, + "clientKey": { + "type": "string" + }, + "description": { + "type": "string" + }, + "from": { + "enum": [ + "local", + "remote" + ], + "type": "string" + }, + "initialDB": { + "type": "string" + }, + "name": { + "maxLength": 256, + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "rootCert": { + "type": "string" + }, + "skipVerify": { + "type": "boolean" + }, + "ssl": { + "type": "boolean" + }, + "timeout": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "from", + "name", + "type", + "username", + "version" + ], + "type": "object" + }, + "dto.DatabaseDelete": { + "properties": { + "deleteBackup": { + "type": "boolean" + }, + "forceDelete": { + "type": "boolean" + }, + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "dto.DatabaseInfo": { + "properties": { + "address": { + "type": "string" + }, + "clientCert": { + "type": "string" + }, + "clientKey": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "description": { + "type": "string" + }, + "from": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "initialDB": { + "type": "string" + }, + "name": { + "maxLength": 256, + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "rootCert": { + "type": "string" + }, + "skipVerify": { + "type": "boolean" + }, + "ssl": { + "type": "boolean" + }, + "timeout": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.DatabaseItem": { + "properties": { + "database": { + "type": "string" + }, + "from": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.DatabaseOption": { + "properties": { + "address": { + "type": "string" + }, + "database": { + "type": "string" + }, + "from": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.DatabaseSearch": { + "properties": { + "info": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "name", + "createdAt" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "required": [ + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.DatabaseUpdate": { + "properties": { + "address": { + "type": "string" + }, + "clientCert": { + "type": "string" + }, + "clientKey": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "initialDB": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "rootCert": { + "type": "string" + }, + "skipVerify": { + "type": "boolean" + }, + "ssl": { + "type": "boolean" + }, + "timeout": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "type", + "username", + "version" + ], + "type": "object" + }, + "dto.DeviceBaseInfo": { + "properties": { + "dns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "hostname": { + "type": "string" + }, + "hosts": { + "items": { + "$ref": "#/definitions/dto.HostHelper" + }, + "type": "array" + }, + "localTime": { + "type": "string" + }, + "maxSize": { + "type": "integer" + }, + "ntp": { + "type": "string" + }, + "swapDetails": { + "items": { + "$ref": "#/definitions/dto.SwapHelper" + }, + "type": "array" + }, + "swapMemoryAvailable": { + "type": "integer" + }, + "swapMemoryTotal": { + "type": "integer" + }, + "swapMemoryUsed": { + "type": "integer" + }, + "timeZone": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "dto.DiskInfo": { + "properties": { + "device": { + "type": "string" + }, + "free": { + "type": "integer" + }, + "inodesFree": { + "type": "integer" + }, + "inodesTotal": { + "type": "integer" + }, + "inodesUsed": { + "type": "integer" + }, + "inodesUsedPercent": { + "type": "number" + }, + "path": { + "type": "string" + }, + "total": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "used": { + "type": "integer" + }, + "usedPercent": { + "type": "number" + } + }, + "type": "object" + }, + "dto.DockerOperation": { + "properties": { + "operation": { + "enum": [ + "start", + "restart", + "stop" + ], + "type": "string" + } + }, + "required": [ + "operation" + ], + "type": "object" + }, + "dto.DownloadRecord": { + "properties": { + "downloadAccountID": { + "type": "integer" + }, + "fileDir": { + "type": "string" + }, + "fileName": { + "type": "string" + } + }, + "required": [ + "downloadAccountID", + "fileDir", + "fileName" + ], + "type": "object" + }, + "dto.ExtraProperties": { + "properties": { + "tags": { + "items": { + "$ref": "#/definitions/dto.Tag" + }, + "type": "array" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.Fail2BanBaseInfo": { + "properties": { + "banAction": { + "type": "string" + }, + "banTime": { + "type": "string" + }, + "findTime": { + "type": "string" + }, + "isActive": { + "type": "boolean" + }, + "isEnable": { + "type": "boolean" + }, + "isExist": { + "type": "boolean" + }, + "logPath": { + "type": "string" + }, + "maxRetry": { + "type": "integer" + }, + "port": { + "type": "integer" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.Fail2BanSearch": { + "properties": { + "status": { + "enum": [ + "banned", + "ignore" + ], + "type": "string" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "dto.Fail2BanSet": { + "properties": { + "ips": { + "items": { + "type": "string" + }, + "type": "array" + }, + "operate": { + "enum": [ + "banned", + "ignore" + ], + "type": "string" + } + }, + "required": [ + "operate" + ], + "type": "object" + }, + "dto.Fail2BanUpdate": { + "properties": { + "key": { + "enum": [ + "port", + "bantime", + "findtime", + "maxretry", + "banaction", + "logpath", + "port" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object" + }, + "dto.FirewallBaseInfo": { + "properties": { + "isActive": { + "type": "boolean" + }, + "isBind": { + "type": "boolean" + }, + "isExist": { + "type": "boolean" + }, + "isInit": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "pingStatus": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.FirewallOperation": { + "properties": { + "operation": { + "enum": [ + "start", + "stop", + "restart", + "disableBanPing", + "enableBanPing" + ], + "type": "string" + }, + "withDockerRestart": { + "type": "boolean" + } + }, + "required": [ + "operation" + ], + "type": "object" + }, + "dto.ForBuckets": { + "properties": { + "accessKey": { + "type": "string" + }, + "credential": { + "type": "string" + }, + "type": { + "type": "string" + }, + "vars": { + "type": "string" + } + }, + "required": [ + "credential", + "type", + "vars" + ], + "type": "object" + }, + "dto.ForceDelete": { + "properties": { + "forceDelete": { + "type": "boolean" + }, + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.ForwardRuleOperate": { + "properties": { + "forceDelete": { + "type": "boolean" + }, + "rules": { + "items": { + "properties": { + "interface": { + "type": "string" + }, + "num": { + "type": "string" + }, + "operation": { + "enum": [ + "add", + "remove" + ], + "type": "string" + }, + "port": { + "type": "string" + }, + "protocol": { + "enum": [ + "tcp", + "udp", + "tcp/udp" + ], + "type": "string" + }, + "targetIP": { + "type": "string" + }, + "targetPort": { + "type": "string" + } + }, + "required": [ + "operation", + "port", + "protocol", + "targetPort" + ], + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.FtpBaseInfo": { + "properties": { + "isActive": { + "type": "boolean" + }, + "isExist": { + "type": "boolean" + } + }, + "type": "object" + }, + "dto.FtpCreate": { + "properties": { + "description": { + "type": "string" + }, + "password": { + "type": "string" + }, + "path": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "required": [ + "password", + "path", + "user" + ], + "type": "object" + }, + "dto.FtpLogSearch": { + "properties": { + "operation": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "user": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.FtpUpdate": { + "properties": { + "description": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "password": { + "type": "string" + }, + "path": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "password", + "path" + ], + "type": "object" + }, + "dto.GPUInfo": { + "properties": { + "fanSpeed": { + "type": "string" + }, + "gpuUtil": { + "type": "string" + }, + "index": { + "type": "integer" + }, + "maxPowerLimit": { + "type": "string" + }, + "memTotal": { + "type": "string" + }, + "memUsed": { + "type": "string" + }, + "memoryUsage": { + "type": "string" + }, + "performanceState": { + "type": "string" + }, + "powerDraw": { + "type": "string" + }, + "powerUsage": { + "type": "string" + }, + "productName": { + "type": "string" + }, + "temperature": { + "type": "string" + } + }, + "type": "object" + }, + "dto.GPUProcess": { + "properties": { + "pid": { + "type": "string" + }, + "processName": { + "type": "string" + }, + "type": { + "type": "string" + }, + "usedMemory": { + "type": "string" + } + }, + "type": "object" + }, + "dto.GroupCreate": { + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "type": "object" + }, + "dto.GroupSearch": { + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "dto.GroupUpdate": { + "properties": { + "id": { + "type": "integer" + }, + "isDefault": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "dto.HostConnTest": { + "properties": { + "addr": { + "type": "string" + }, + "authMode": { + "enum": [ + "password", + "key" + ], + "type": "string" + }, + "passPhrase": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "privateKey": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "required": [ + "addr", + "port", + "user" + ], + "type": "object" + }, + "dto.HostHelper": { + "properties": { + "host": { + "type": "string" + }, + "ip": { + "type": "string" + } + }, + "type": "object" + }, + "dto.HostInfo": { + "properties": { + "addr": { + "type": "string" + }, + "authMode": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "description": { + "type": "string" + }, + "groupBelong": { + "type": "string" + }, + "groupID": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "passPhrase": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "privateKey": { + "type": "string" + }, + "rememberPassword": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "dto.HostOperate": { + "properties": { + "addr": { + "type": "string" + }, + "authMode": { + "enum": [ + "password", + "key" + ], + "type": "string" + }, + "description": { + "type": "string" + }, + "groupID": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "passPhrase": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "privateKey": { + "type": "string" + }, + "rememberPassword": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "required": [ + "addr", + "port", + "user" + ], + "type": "object" + }, + "dto.HostTree": { + "properties": { + "children": { + "items": { + "$ref": "#/definitions/dto.TreeChild" + }, + "type": "array" + }, + "id": { + "type": "integer" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ImageBuild": { + "properties": { + "args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "dockerfile": { + "type": "string" + }, + "from": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "dockerfile", + "from", + "name" + ], + "type": "object" + }, + "dto.ImageInfo": { + "properties": { + "createdAt": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "string" + }, + "isPinned": { + "type": "boolean" + }, + "isUsed": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.ImageLoad": { + "properties": { + "path": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "dto.ImagePull": { + "properties": { + "imageName": { + "items": { + "type": "string" + }, + "type": "array" + }, + "repoID": { + "type": "integer" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "imageName" + ], + "type": "object" + }, + "dto.ImagePush": { + "properties": { + "name": { + "type": "string" + }, + "repoID": { + "type": "integer" + }, + "tagName": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "name", + "repoID", + "tagName" + ], + "type": "object" + }, + "dto.ImageRepoDelete": { + "properties": { + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "required": [ + "ids" + ], + "type": "object" + }, + "dto.ImageRepoOption": { + "properties": { + "downloadUrl": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ImageRepoUpdate": { + "properties": { + "auth": { + "type": "boolean" + }, + "downloadUrl": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "password": { + "type": "string" + }, + "protocol": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ImageSave": { + "properties": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "tagName": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "name", + "path", + "tagName" + ], + "type": "object" + }, + "dto.ImageTag": { + "properties": { + "sourceID": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "sourceID", + "tags" + ], + "type": "object" + }, + "dto.InspectReq": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "dto.InstallDetail": { + "properties": { + "detailID": { + "type": "integer" + }, + "httpPort": { + "type": "integer" + }, + "httpsPort": { + "type": "integer" + }, + "installID": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + }, + "webUI": { + "type": "string" + } + }, + "type": "object" + }, + "dto.IptablesBatchOperate": { + "properties": { + "rules": { + "items": { + "$ref": "#/definitions/dto.IptablesRuleOp" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.IptablesOp": { + "properties": { + "name": { + "enum": [ + "1PANEL_INPUT", + "1PANEL_OUTPUT", + "1PANEL_BASIC" + ], + "type": "string" + }, + "operate": { + "enum": [ + "init-base", + "init-forward", + "init-advance", + "bind-base", + "unbind-base", + "bind", + "unbind" + ], + "type": "string" + } + }, + "required": [ + "name", + "operate" + ], + "type": "object" + }, + "dto.IptablesRuleOp": { + "properties": { + "chain": { + "enum": [ + "1PANEL_BASIC", + "1PANEL_BASIC_BEFORE", + "1PANEL_INPUT", + "1PANEL_OUTPUT" + ], + "type": "string" + }, + "description": { + "type": "string" + }, + "dstIP": { + "type": "string" + }, + "dstPort": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "operation": { + "enum": [ + "add", + "remove" + ], + "type": "string" + }, + "protocol": { + "type": "string" + }, + "srcIP": { + "type": "string" + }, + "srcPort": { + "type": "integer" + }, + "strategy": { + "enum": [ + "accept", + "drop", + "reject" + ], + "type": "string" + } + }, + "required": [ + "chain", + "operation", + "strategy" + ], + "type": "object" + }, + "dto.LauncherOption": { + "properties": { + "isShow": { + "type": "boolean" + }, + "key": { + "type": "string" + } + }, + "type": "object" + }, + "dto.LoadRedisStatus": { + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "type": "object" + }, + "dto.Locale": { + "properties": { + "en": { + "type": "string" + }, + "es-es": { + "type": "string" + }, + "ja": { + "type": "string" + }, + "ko": { + "type": "string" + }, + "ms": { + "type": "string" + }, + "pt-br": { + "type": "string" + }, + "ru": { + "type": "string" + }, + "tr": { + "type": "string" + }, + "zh": { + "type": "string" + }, + "zh-hant": { + "type": "string" + } + }, + "type": "object" + }, + "dto.LogOption": { + "properties": { + "logMaxFile": { + "type": "string" + }, + "logMaxSize": { + "type": "string" + } + }, + "type": "object" + }, + "dto.Login": { + "properties": { + "captcha": { + "type": "string" + }, + "captchaID": { + "type": "string" + }, + "language": { + "enum": [ + "zh", + "en", + "zh-Hant", + "ko", + "ja", + "ru", + "ms", + "pt-BR", + "tr", + "es-ES" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "required": [ + "language", + "name", + "password" + ], + "type": "object" + }, + "dto.MFALogin": { + "properties": { + "code": { + "type": "string" + }, + "name": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "required": [ + "code", + "name", + "password" + ], + "type": "object" + }, + "dto.MfaCredential": { + "properties": { + "code": { + "type": "string" + }, + "interval": { + "type": "string" + }, + "secret": { + "type": "string" + } + }, + "required": [ + "code", + "interval", + "secret" + ], + "type": "object" + }, + "dto.MonitorData": { + "properties": { + "date": { + "items": { + "type": "string" + }, + "type": "array" + }, + "param": { + "type": "string" + }, + "value": { + "items": {}, + "type": "array" + } + }, + "type": "object" + }, + "dto.MonitorGPUData": { + "properties": { + "date": { + "items": { + "type": "string" + }, + "type": "array" + }, + "gpuProcesses": { + "items": { + "items": { + "$ref": "#/definitions/dto.GPUProcess" + }, + "type": "array" + }, + "type": "array" + }, + "gpuValue": { + "items": { + "type": "number" + }, + "type": "array" + }, + "memoryPercent": { + "items": { + "type": "number" + }, + "type": "array" + }, + "memoryTotal": { + "items": { + "type": "number" + }, + "type": "array" + }, + "memoryUsed": { + "items": { + "type": "number" + }, + "type": "array" + }, + "powerPercent": { + "items": { + "type": "number" + }, + "type": "array" + }, + "powerTotal": { + "items": { + "type": "number" + }, + "type": "array" + }, + "powerUsed": { + "items": { + "type": "number" + }, + "type": "array" + }, + "processCount": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "speedValue": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "temperatureValue": { + "items": { + "type": "number" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.MonitorGPUSearch": { + "properties": { + "endTime": { + "type": "string" + }, + "productName": { + "type": "string" + }, + "startTime": { + "type": "string" + } + }, + "type": "object" + }, + "dto.MonitorSearch": { + "properties": { + "endTime": { + "type": "string" + }, + "io": { + "type": "string" + }, + "network": { + "type": "string" + }, + "param": { + "enum": [ + "all", + "cpu", + "memory", + "load", + "io", + "network" + ], + "type": "string" + }, + "startTime": { + "type": "string" + } + }, + "required": [ + "param" + ], + "type": "object" + }, + "dto.MonitorSetting": { + "properties": { + "defaultIO": { + "type": "string" + }, + "defaultNetwork": { + "type": "string" + }, + "monitorInterval": { + "type": "string" + }, + "monitorStatus": { + "type": "string" + }, + "monitorStoreDays": { + "type": "string" + } + }, + "type": "object" + }, + "dto.MonitorSettingUpdate": { + "properties": { + "key": { + "enum": [ + "MonitorStatus", + "MonitorStoreDays", + "MonitorInterval", + "DefaultNetwork", + "DefaultIO" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object" + }, + "dto.MysqlDBCreate": { + "properties": { + "collation": { + "type": "string" + }, + "database": { + "type": "string" + }, + "description": { + "type": "string" + }, + "format": { + "type": "string" + }, + "from": { + "enum": [ + "local", + "remote" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "permission": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "database", + "format", + "from", + "name", + "password", + "permission", + "username" + ], + "type": "object" + }, + "dto.MysqlDBDelete": { + "properties": { + "database": { + "type": "string" + }, + "deleteBackup": { + "type": "boolean" + }, + "forceDelete": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "type": { + "enum": [ + "mysql", + "mariadb", + "mysql-cluster" + ], + "type": "string" + } + }, + "required": [ + "database", + "id", + "type" + ], + "type": "object" + }, + "dto.MysqlDBDeleteCheck": { + "properties": { + "database": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "type": { + "enum": [ + "mysql", + "mariadb", + "mysql-cluster" + ], + "type": "string" + } + }, + "required": [ + "database", + "id", + "type" + ], + "type": "object" + }, + "dto.MysqlDBSearch": { + "properties": { + "database": { + "type": "string" + }, + "info": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "name", + "createdAt" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "database", + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.MysqlFormatCollationOption": { + "properties": { + "collations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "type": "object" + }, + "dto.MysqlLoadDB": { + "properties": { + "database": { + "type": "string" + }, + "from": { + "enum": [ + "local", + "remote" + ], + "type": "string" + }, + "type": { + "enum": [ + "mysql", + "mariadb", + "mysql-cluster" + ], + "type": "string" + } + }, + "required": [ + "database", + "from", + "type" + ], + "type": "object" + }, + "dto.MysqlStatus": { + "properties": { + "Aborted_clients": { + "type": "string" + }, + "Aborted_connects": { + "type": "string" + }, + "Bytes_received": { + "type": "string" + }, + "Bytes_sent": { + "type": "string" + }, + "Com_commit": { + "type": "string" + }, + "Com_rollback": { + "type": "string" + }, + "Connections": { + "type": "string" + }, + "Created_tmp_disk_tables": { + "type": "string" + }, + "Created_tmp_tables": { + "type": "string" + }, + "File": { + "type": "string" + }, + "Innodb_buffer_pool_pages_dirty": { + "type": "string" + }, + "Innodb_buffer_pool_read_requests": { + "type": "string" + }, + "Innodb_buffer_pool_reads": { + "type": "string" + }, + "Key_read_requests": { + "type": "string" + }, + "Key_reads": { + "type": "string" + }, + "Key_write_requests": { + "type": "string" + }, + "Key_writes": { + "type": "string" + }, + "Max_used_connections": { + "type": "string" + }, + "Open_tables": { + "type": "string" + }, + "Opened_files": { + "type": "string" + }, + "Opened_tables": { + "type": "string" + }, + "Position": { + "type": "string" + }, + "Qcache_hits": { + "type": "string" + }, + "Qcache_inserts": { + "type": "string" + }, + "Questions": { + "type": "string" + }, + "Run": { + "type": "string" + }, + "Select_full_join": { + "type": "string" + }, + "Select_range_check": { + "type": "string" + }, + "Sort_merge_passes": { + "type": "string" + }, + "Table_locks_waited": { + "type": "string" + }, + "Threads_cached": { + "type": "string" + }, + "Threads_connected": { + "type": "string" + }, + "Threads_created": { + "type": "string" + }, + "Threads_running": { + "type": "string" + }, + "Uptime": { + "type": "string" + } + }, + "type": "object" + }, + "dto.MysqlVariables": { + "properties": { + "binlog_cache_size": { + "type": "string" + }, + "innodb_buffer_pool_size": { + "type": "string" + }, + "innodb_log_buffer_size": { + "type": "string" + }, + "join_buffer_size": { + "type": "string" + }, + "key_buffer_size": { + "type": "string" + }, + "long_query_time": { + "type": "string" + }, + "max_connections": { + "type": "string" + }, + "max_heap_table_size": { + "type": "string" + }, + "query_cache_size": { + "type": "string" + }, + "query_cache_type": { + "type": "string" + }, + "read_buffer_size": { + "type": "string" + }, + "read_rnd_buffer_size": { + "type": "string" + }, + "slow_query_log": { + "type": "string" + }, + "sort_buffer_size": { + "type": "string" + }, + "table_open_cache": { + "type": "string" + }, + "thread_cache_size": { + "type": "string" + }, + "thread_stack": { + "type": "string" + }, + "tmp_table_size": { + "type": "string" + } + }, + "type": "object" + }, + "dto.MysqlVariablesUpdate": { + "properties": { + "database": { + "type": "string" + }, + "type": { + "enum": [ + "mysql", + "mariadb", + "mysql-cluster" + ], + "type": "string" + }, + "variables": { + "items": { + "$ref": "#/definitions/dto.MysqlVariablesUpdateHelper" + }, + "type": "array" + } + }, + "required": [ + "database", + "type" + ], + "type": "object" + }, + "dto.MysqlVariablesUpdateHelper": { + "properties": { + "param": { + "type": "string" + }, + "value": {} + }, + "type": "object" + }, + "dto.NetworkCreate": { + "properties": { + "auxAddress": { + "items": { + "$ref": "#/definitions/dto.SettingUpdate" + }, + "type": "array" + }, + "auxAddressV6": { + "items": { + "$ref": "#/definitions/dto.SettingUpdate" + }, + "type": "array" + }, + "driver": { + "type": "string" + }, + "gateway": { + "type": "string" + }, + "gatewayV6": { + "type": "string" + }, + "ipRange": { + "type": "string" + }, + "ipRangeV6": { + "type": "string" + }, + "ipv4": { + "type": "boolean" + }, + "ipv6": { + "type": "boolean" + }, + "labels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "options": { + "items": { + "type": "string" + }, + "type": "array" + }, + "subnet": { + "type": "string" + }, + "subnetV6": { + "type": "string" + } + }, + "required": [ + "driver", + "name" + ], + "type": "object" + }, + "dto.NginxAuth": { + "properties": { + "remark": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "dto.NginxKey": { + "enum": [ + "index", + "limit-conn", + "ssl", + "cache", + "http-per", + "proxy-cache" + ], + "type": "string", + "x-enum-varnames": [ + "Index", + "LimitConn", + "SSL", + "CACHE", + "HttpPer", + "ProxyCache" + ] + }, + "dto.NginxUpstream": { + "properties": { + "algorithm": { + "type": "string" + }, + "content": { + "type": "string" + }, + "name": { + "type": "string" + }, + "servers": { + "items": { + "$ref": "#/definitions/dto.NginxUpstreamServer" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.NginxUpstreamServer": { + "properties": { + "failTimeout": { + "type": "integer" + }, + "failTimeoutUnit": { + "type": "string" + }, + "flag": { + "type": "string" + }, + "maxConns": { + "type": "integer" + }, + "maxFails": { + "type": "integer" + }, + "server": { + "type": "string" + }, + "weight": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.NodeCurrent": { + "properties": { + "cpuDetailedPercent": { + "items": { + "type": "number" + }, + "type": "array" + }, + "cpuTotal": { + "type": "integer" + }, + "cpuUsed": { + "type": "number" + }, + "cpuUsedPercent": { + "type": "number" + }, + "load1": { + "type": "number" + }, + "load15": { + "type": "number" + }, + "load5": { + "type": "number" + }, + "loadUsagePercent": { + "type": "number" + }, + "memoryAvailable": { + "type": "integer" + }, + "memoryTotal": { + "type": "integer" + }, + "memoryUsed": { + "type": "integer" + }, + "memoryUsedPercent": { + "type": "number" + }, + "swapMemoryAvailable": { + "type": "integer" + }, + "swapMemoryTotal": { + "type": "integer" + }, + "swapMemoryUsed": { + "type": "integer" + }, + "swapMemoryUsedPercent": { + "type": "number" + } + }, + "type": "object" + }, + "dto.OllamaBindDomain": { + "properties": { + "appInstallID": { + "type": "integer" + }, + "domain": { + "type": "string" + }, + "ipList": { + "type": "string" + }, + "sslID": { + "type": "integer" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "appInstallID", + "domain" + ], + "type": "object" + }, + "dto.OllamaBindDomainReq": { + "properties": { + "appInstallID": { + "type": "integer" + } + }, + "required": [ + "appInstallID" + ], + "type": "object" + }, + "dto.OllamaBindDomainRes": { + "properties": { + "acmeAccountID": { + "type": "integer" + }, + "allowIPs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "connUrl": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "sslID": { + "type": "integer" + }, + "websiteID": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.OllamaModelDropList": { + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.OllamaModelName": { + "properties": { + "name": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "type": "object" + }, + "dto.Operate": { + "properties": { + "operation": { + "type": "string" + } + }, + "required": [ + "operation" + ], + "type": "object" + }, + "dto.OperateByID": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "dto.OperateByIDs": { + "properties": { + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.OperateByName": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.OperateByTaskID": { + "properties": { + "taskID": { + "type": "string" + } + }, + "type": "object" + }, + "dto.OperateByType": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "dto.OperationWithName": { + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "dto.OperationWithNameAndType": { + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "dto.Options": { + "properties": { + "option": { + "type": "string" + } + }, + "type": "object" + }, + "dto.OsInfo": { + "properties": { + "diskSize": { + "type": "integer" + }, + "kernelArch": { + "type": "string" + }, + "kernelVersion": { + "type": "string" + }, + "os": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "platformFamily": { + "type": "string" + }, + "prettyDistro": { + "type": "string" + } + }, + "type": "object" + }, + "dto.PageContainer": { + "properties": { + "excludeAppStore": { + "type": "boolean" + }, + "filters": { + "type": "string" + }, + "name": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "name", + "createdAt", + "state" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "state": { + "enum": [ + "all", + "created", + "running", + "paused", + "restarting", + "removing", + "exited", + "dead" + ], + "type": "string" + } + }, + "required": [ + "order", + "orderBy", + "page", + "pageSize", + "state" + ], + "type": "object" + }, + "dto.PageCronjob": { + "properties": { + "groupIDs": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "info": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "name", + "status", + "createdAt" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.PageImage": { + "properties": { + "name": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "size", + "tags", + "createdAt", + "isUsed" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.PageInfo": { + "properties": { + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.PageResult": { + "properties": { + "items": {}, + "total": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.PageSnapshot": { + "properties": { + "info": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "name", + "createdAt" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.PasswordUpdate": { + "properties": { + "newPassword": { + "type": "string" + }, + "oldPassword": { + "type": "string" + } + }, + "required": [ + "newPassword", + "oldPassword" + ], + "type": "object" + }, + "dto.PortHelper": { + "properties": { + "containerPort": { + "type": "string" + }, + "hostIP": { + "type": "string" + }, + "hostPort": { + "type": "string" + }, + "protocol": { + "type": "string" + } + }, + "type": "object" + }, + "dto.PortRuleOperate": { + "properties": { + "address": { + "type": "string" + }, + "chain": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "operation": { + "enum": [ + "add", + "remove" + ], + "type": "string" + }, + "port": { + "type": "string" + }, + "protocol": { + "enum": [ + "tcp", + "udp", + "tcp/udp" + ], + "type": "string" + }, + "strategy": { + "enum": [ + "accept", + "drop" + ], + "type": "string" + } + }, + "required": [ + "operation", + "port", + "protocol", + "strategy" + ], + "type": "object" + }, + "dto.PortRuleUpdate": { + "properties": { + "newRule": { + "$ref": "#/definitions/dto.PortRuleOperate" + }, + "oldRule": { + "$ref": "#/definitions/dto.PortRuleOperate" + } + }, + "type": "object" + }, + "dto.PortUpdate": { + "properties": { + "serverPort": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "serverPort" + ], + "type": "object" + }, + "dto.PostgresqlBindUser": { + "properties": { + "database": { + "type": "string" + }, + "name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "superUser": { + "type": "boolean" + }, + "username": { + "type": "string" + } + }, + "required": [ + "database", + "name", + "password", + "username" + ], + "type": "object" + }, + "dto.PostgresqlDBCreate": { + "properties": { + "database": { + "type": "string" + }, + "description": { + "type": "string" + }, + "format": { + "type": "string" + }, + "from": { + "enum": [ + "local", + "remote" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "superUser": { + "type": "boolean" + }, + "username": { + "type": "string" + } + }, + "required": [ + "database", + "from", + "name", + "password", + "username" + ], + "type": "object" + }, + "dto.PostgresqlDBDelete": { + "properties": { + "database": { + "type": "string" + }, + "deleteBackup": { + "type": "boolean" + }, + "forceDelete": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "type": { + "enum": [ + "postgresql", + "postgresql-cluster" + ], + "type": "string" + } + }, + "required": [ + "database", + "id", + "type" + ], + "type": "object" + }, + "dto.PostgresqlDBDeleteCheck": { + "properties": { + "database": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "type": { + "enum": [ + "postgresql", + "postgresql-cluster" + ], + "type": "string" + } + }, + "required": [ + "database", + "id", + "type" + ], + "type": "object" + }, + "dto.PostgresqlDBSearch": { + "properties": { + "database": { + "type": "string" + }, + "info": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "name", + "createdAt" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "database", + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.PostgresqlLoadDB": { + "properties": { + "database": { + "type": "string" + }, + "from": { + "enum": [ + "local", + "remote" + ], + "type": "string" + }, + "type": { + "enum": [ + "postgresql", + "postgresql-cluster" + ], + "type": "string" + } + }, + "required": [ + "database", + "from", + "type" + ], + "type": "object" + }, + "dto.Process": { + "properties": { + "cmd": { + "type": "string" + }, + "memory": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "percent": { + "type": "number" + }, + "pid": { + "type": "integer" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ProxyUpdate": { + "properties": { + "proxyDocker": { + "type": "boolean" + }, + "proxyPasswd": { + "type": "string" + }, + "proxyPasswdKeep": { + "type": "string" + }, + "proxyPort": { + "type": "string" + }, + "proxyType": { + "type": "string" + }, + "proxyUrl": { + "type": "string" + }, + "proxyUser": { + "type": "string" + }, + "withDockerRestart": { + "type": "boolean" + } + }, + "type": "object" + }, + "dto.QuickJump": { + "properties": { + "alias": { + "type": "string" + }, + "detail": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "isShow": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "recommend": { + "type": "integer" + }, + "router": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "dto.RecordFileSize": { + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.RecordSearch": { + "properties": { + "detailName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize", + "type" + ], + "type": "object" + }, + "dto.RecordSearchByCronjob": { + "properties": { + "cronjobID": { + "type": "integer" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "cronjobID", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.RedisConf": { + "properties": { + "containerName": { + "type": "string" + }, + "database": { + "type": "string" + }, + "maxclients": { + "type": "string" + }, + "maxmemory": { + "type": "string" + }, + "name": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "requirepass": { + "type": "string" + }, + "timeout": { + "type": "string" + } + }, + "required": [ + "database" + ], + "type": "object" + }, + "dto.RedisConfPersistenceUpdate": { + "properties": { + "appendfsync": { + "type": "string" + }, + "appendonly": { + "type": "string" + }, + "database": { + "type": "string" + }, + "dbType": { + "enum": [ + "redis", + "redis-cluster" + ], + "type": "string" + }, + "save": { + "type": "string" + }, + "type": { + "enum": [ + "aof", + "rbd" + ], + "type": "string" + } + }, + "required": [ + "database", + "dbType", + "type" + ], + "type": "object" + }, + "dto.RedisConfUpdate": { + "properties": { + "database": { + "type": "string" + }, + "dbType": { + "enum": [ + "redis", + "redis-cluster" + ], + "type": "string" + }, + "maxclients": { + "type": "string" + }, + "maxmemory": { + "type": "string" + }, + "timeout": { + "type": "string" + } + }, + "required": [ + "database", + "dbType" + ], + "type": "object" + }, + "dto.RedisPersistence": { + "properties": { + "appendfsync": { + "type": "string" + }, + "appendonly": { + "type": "string" + }, + "database": { + "type": "string" + }, + "save": { + "type": "string" + } + }, + "required": [ + "database" + ], + "type": "object" + }, + "dto.RedisStatus": { + "properties": { + "connected_clients": { + "type": "string" + }, + "database": { + "type": "string" + }, + "instantaneous_ops_per_sec": { + "type": "string" + }, + "keyspace_hits": { + "type": "string" + }, + "keyspace_misses": { + "type": "string" + }, + "latest_fork_usec": { + "type": "string" + }, + "mem_fragmentation_ratio": { + "type": "string" + }, + "tcp_port": { + "type": "string" + }, + "total_commands_processed": { + "type": "string" + }, + "total_connections_received": { + "type": "string" + }, + "uptime_in_days": { + "type": "string" + }, + "used_memory": { + "type": "string" + }, + "used_memory_peak": { + "type": "string" + }, + "used_memory_rss": { + "type": "string" + } + }, + "required": [ + "database" + ], + "type": "object" + }, + "dto.ReleasesNotes": { + "properties": { + "content": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "fixCount": { + "type": "integer" + }, + "newCount": { + "type": "integer" + }, + "optimizationCount": { + "type": "integer" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ResourceLimit": { + "properties": { + "cpu": { + "type": "integer" + }, + "memory": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.RootCertOperate": { + "properties": { + "description": { + "type": "string" + }, + "encryptionMode": { + "enum": [ + "rsa", + "ed25519", + "ecdsa", + "dsa" + ], + "type": "string" + }, + "id": { + "type": "integer" + }, + "mode": { + "type": "string" + }, + "name": { + "type": "string" + }, + "passPhrase": { + "type": "string" + }, + "privateKey": { + "type": "string" + }, + "publicKey": { + "type": "string" + } + }, + "required": [ + "encryptionMode" + ], + "type": "object" + }, + "dto.RuleSearch": { + "properties": { + "info": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "strategy": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize", + "type" + ], + "type": "object" + }, + "dto.SSHConf": { + "properties": { + "file": { + "type": "string" + } + }, + "type": "object" + }, + "dto.SSHConnData": { + "properties": { + "addr": { + "type": "string" + }, + "authMode": { + "enum": [ + "password", + "key" + ], + "type": "string" + }, + "localSSHConnShow": { + "type": "string" + }, + "passPhrase": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "privateKey": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "required": [ + "addr", + "port", + "user" + ], + "type": "object" + }, + "dto.SSHDefaultConn": { + "properties": { + "defaultConn": { + "type": "string" + }, + "withReset": { + "type": "boolean" + } + }, + "type": "object" + }, + "dto.SSHInfo": { + "properties": { + "autoStart": { + "type": "boolean" + }, + "currentUser": { + "type": "string" + }, + "isActive": { + "type": "boolean" + }, + "isExist": { + "type": "boolean" + }, + "listenAddress": { + "type": "string" + }, + "message": { + "type": "string" + }, + "passwordAuthentication": { + "type": "string" + }, + "permitRootLogin": { + "type": "string" + }, + "port": { + "type": "string" + }, + "pubkeyAuthentication": { + "type": "string" + }, + "useDNS": { + "type": "string" + } + }, + "type": "object" + }, + "dto.SSHUpdate": { + "properties": { + "key": { + "type": "string" + }, + "newValue": { + "type": "string" + }, + "oldValue": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object" + }, + "dto.SSLInfo": { + "properties": { + "cert": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "key": { + "type": "string" + }, + "rootPath": { + "type": "string" + }, + "sslID": { + "type": "integer" + }, + "timeout": { + "type": "string" + } + }, + "type": "object" + }, + "dto.SSLUpdate": { + "properties": { + "cert": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "key": { + "type": "string" + }, + "ssl": { + "enum": [ + "Enable", + "Disable", + "Mux" + ], + "type": "string" + }, + "sslID": { + "type": "integer" + }, + "sslType": { + "enum": [ + "self", + "select", + "import", + "import-paste", + "import-local" + ], + "type": "string" + } + }, + "required": [ + "ssl", + "sslType" + ], + "type": "object" + }, + "dto.ScriptOperate": { + "properties": { + "description": { + "type": "string" + }, + "groups": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "isInteractive": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "script": { + "type": "string" + } + }, + "type": "object" + }, + "dto.ScriptOptions": { + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.SearchByFilter": { + "properties": { + "filter": { + "type": "string" + } + }, + "type": "object" + }, + "dto.SearchClamWithPage": { + "properties": { + "info": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "name", + "status", + "createdAt" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SearchForSize": { + "properties": { + "cronjobID": { + "type": "integer" + }, + "detailName": { + "type": "string" + }, + "info": { + "type": "string" + }, + "name": { + "type": "string" + }, + "order": { + "type": "string" + }, + "orderBy": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize", + "type" + ], + "type": "object" + }, + "dto.SearchForTree": { + "properties": { + "info": { + "type": "string" + } + }, + "type": "object" + }, + "dto.SearchLgLogWithPage": { + "properties": { + "ip": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "status": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SearchOpLogWithPage": { + "properties": { + "node": { + "type": "string" + }, + "operation": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "source": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SearchPageWithGroup": { + "properties": { + "groupID": { + "type": "integer" + }, + "info": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SearchPageWithType": { + "properties": { + "info": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SearchRecord": { + "properties": { + "cronjobID": { + "type": "integer" + }, + "endTime": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "startTime": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SearchSSHLog": { + "properties": { + "Status": { + "enum": [ + "Success", + "Failed", + "All" + ], + "type": "string" + }, + "info": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "Status", + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SearchTaskLogReq": { + "properties": { + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SearchWithPage": { + "properties": { + "info": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "dto.SettingInfo": { + "properties": { + "appStoreLastModified": { + "type": "string" + }, + "appStoreSyncStatus": { + "type": "string" + }, + "appStoreVersion": { + "type": "string" + }, + "defaultIO": { + "type": "string" + }, + "defaultNetwork": { + "type": "string" + }, + "dockerSockPath": { + "type": "string" + }, + "fileRecycleBin": { + "type": "string" + }, + "lastCleanData": { + "type": "string" + }, + "lastCleanSize": { + "type": "string" + }, + "lastCleanTime": { + "type": "string" + }, + "localTime": { + "type": "string" + }, + "monitorInterval": { + "type": "string" + }, + "monitorStatus": { + "type": "string" + }, + "monitorStoreDays": { + "type": "string" + }, + "ntpSite": { + "type": "string" + }, + "systemIP": { + "type": "string" + }, + "systemVersion": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "dto.SettingUpdate": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object" + }, + "dto.SnapshotBatchDelete": { + "properties": { + "deleteWithFile": { + "type": "boolean" + }, + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "required": [ + "ids" + ], + "type": "object" + }, + "dto.SnapshotCreate": { + "properties": { + "appData": { + "items": { + "$ref": "#/definitions/dto.DataTree" + }, + "type": "array" + }, + "backupData": { + "items": { + "$ref": "#/definitions/dto.DataTree" + }, + "type": "array" + }, + "description": { + "maxLength": 256, + "type": "string" + }, + "downloadAccountID": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "ignoreFiles": { + "items": { + "type": "string" + }, + "type": "array" + }, + "interruptStep": { + "type": "string" + }, + "name": { + "type": "string" + }, + "panelData": { + "items": { + "$ref": "#/definitions/dto.DataTree" + }, + "type": "array" + }, + "secret": { + "type": "string" + }, + "sourceAccountIDs": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "timeout": { + "type": "integer" + }, + "withDockerConf": { + "type": "boolean" + }, + "withLoginLog": { + "type": "boolean" + }, + "withMonitorData": { + "type": "boolean" + }, + "withOperationLog": { + "type": "boolean" + }, + "withSystemLog": { + "type": "boolean" + }, + "withTaskLog": { + "type": "boolean" + } + }, + "required": [ + "downloadAccountID", + "sourceAccountIDs" + ], + "type": "object" + }, + "dto.SnapshotData": { + "properties": { + "appData": { + "items": { + "$ref": "#/definitions/dto.DataTree" + }, + "type": "array" + }, + "backupData": { + "items": { + "$ref": "#/definitions/dto.DataTree" + }, + "type": "array" + }, + "ignoreFiles": { + "items": { + "type": "string" + }, + "type": "array" + }, + "panelData": { + "items": { + "$ref": "#/definitions/dto.DataTree" + }, + "type": "array" + }, + "withDockerConf": { + "type": "boolean" + }, + "withLoginLog": { + "type": "boolean" + }, + "withMonitorData": { + "type": "boolean" + }, + "withOperationLog": { + "type": "boolean" + }, + "withSystemLog": { + "type": "boolean" + }, + "withTaskLog": { + "type": "boolean" + } + }, + "type": "object" + }, + "dto.SnapshotImport": { + "properties": { + "backupAccountID": { + "type": "integer" + }, + "description": { + "maxLength": 256, + "type": "string" + }, + "names": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dto.SnapshotRecover": { + "properties": { + "id": { + "type": "integer" + }, + "isNew": { + "type": "boolean" + }, + "reDownload": { + "type": "boolean" + }, + "secret": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "dto.SnapshotRule": { + "properties": { + "ignoreAppIDs": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "withImage": { + "type": "boolean" + } + }, + "type": "object" + }, + "dto.SnapshotTransHelper": { + "properties": { + "ignoreApps": { + "items": { + "$ref": "#/definitions/dto.TransHelper" + }, + "type": "array" + }, + "withImage": { + "type": "boolean" + } + }, + "type": "object" + }, + "dto.SwapHelper": { + "properties": { + "isNew": { + "type": "boolean" + }, + "path": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "taskID": { + "type": "string" + }, + "used": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "dto.SystemSetting": { + "properties": { + "isDemo": { + "type": "boolean" + }, + "isIntl": { + "type": "boolean" + }, + "language": { + "type": "string" + } + }, + "type": "object" + }, + "dto.Tag": { + "properties": { + "key": { + "type": "string" + }, + "locales": { + "$ref": "#/definitions/dto.Locale" + }, + "name": { + "type": "string" + }, + "sort": { + "type": "integer" + } + }, + "type": "object" + }, + "dto.TerminalInfo": { + "properties": { + "cursorBlink": { + "type": "string" + }, + "cursorStyle": { + "type": "string" + }, + "fontSize": { + "type": "string" + }, + "letterSpacing": { + "type": "string" + }, + "lineHeight": { + "type": "string" + }, + "scrollSensitivity": { + "type": "string" + }, + "scrollback": { + "type": "string" + } + }, + "type": "object" + }, + "dto.TransHelper": { + "properties": { + "detailName": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.TreeChild": { + "properties": { + "id": { + "type": "integer" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "dto.UpdateByFile": { + "properties": { + "file": { + "type": "string" + } + }, + "type": "object" + }, + "dto.UpdateByNameAndFile": { + "properties": { + "file": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "dto.UpdateDescription": { + "properties": { + "description": { + "maxLength": 256, + "type": "string" + }, + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "dto.UpdateFirewallDescription": { + "properties": { + "chain": { + "type": "string" + }, + "description": { + "type": "string" + }, + "dstIP": { + "type": "string" + }, + "dstPort": { + "type": "string" + }, + "protocol": { + "type": "string" + }, + "srcIP": { + "type": "string" + }, + "srcPort": { + "type": "string" + }, + "strategy": { + "enum": [ + "accept", + "drop" + ], + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "strategy" + ], + "type": "object" + }, + "dto.Upgrade": { + "properties": { + "version": { + "type": "string" + } + }, + "required": [ + "version" + ], + "type": "object" + }, + "dto.UpgradeInfo": { + "properties": { + "latestVersion": { + "type": "string" + }, + "newVersion": { + "type": "string" + }, + "releaseNote": { + "type": "string" + }, + "testVersion": { + "type": "string" + } + }, + "type": "object" + }, + "dto.UploadForRecover": { + "properties": { + "filePath": { + "type": "string" + }, + "targetDir": { + "type": "string" + } + }, + "type": "object" + }, + "dto.UserLoginInfo": { + "properties": { + "mfaStatus": { + "type": "string" + }, + "name": { + "type": "string" + }, + "token": { + "type": "string" + } + }, + "type": "object" + }, + "dto.VolumeCreate": { + "properties": { + "driver": { + "type": "string" + }, + "labels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "options": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "driver", + "name" + ], + "type": "object" + }, + "dto.VolumeHelper": { + "properties": { + "containerDir": { + "type": "string" + }, + "mode": { + "type": "string" + }, + "shared": { + "type": "string" + }, + "sourceDir": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "dto.XPUInfo": { + "properties": { + "deviceID": { + "type": "integer" + }, + "deviceName": { + "type": "string" + }, + "memory": { + "type": "string" + }, + "memoryUsed": { + "type": "string" + }, + "memoryUtil": { + "type": "string" + }, + "power": { + "type": "string" + }, + "temperature": { + "type": "string" + } + }, + "type": "object" + }, + "files.FileInfo": { + "properties": { + "content": { + "type": "string" + }, + "extension": { + "type": "string" + }, + "favoriteID": { + "type": "integer" + }, + "gid": { + "type": "string" + }, + "group": { + "type": "string" + }, + "isDetail": { + "type": "boolean" + }, + "isDir": { + "type": "boolean" + }, + "isHidden": { + "type": "boolean" + }, + "isSymlink": { + "type": "boolean" + }, + "itemTotal": { + "type": "integer" + }, + "items": { + "items": { + "$ref": "#/definitions/files.FileInfo" + }, + "type": "array" + }, + "linkPath": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "modTime": { + "type": "string" + }, + "mode": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "updateTime": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "mfa.Otp": { + "properties": { + "qrImage": { + "type": "string" + }, + "secret": { + "type": "string" + } + }, + "type": "object" + }, + "model.App": { + "properties": { + "architectures": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "crossVersionUpdate": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "document": { + "type": "string" + }, + "github": { + "type": "string" + }, + "gpuSupport": { + "type": "boolean" + }, + "icon": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "lastModified": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "memoryRequired": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "readMe": { + "type": "string" + }, + "recommend": { + "type": "integer" + }, + "required": { + "type": "string" + }, + "requiredPanelVersion": { + "type": "number" + }, + "resource": { + "type": "string" + }, + "shortDescEn": { + "type": "string" + }, + "shortDescZh": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "website": { + "type": "string" + } + }, + "type": "object" + }, + "model.AppIgnoreUpgrade": { + "properties": { + "appDetailID": { + "type": "integer" + }, + "appID": { + "type": "integer" + }, + "createdAt": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "scope": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "type": "object" + }, + "model.AppInstall": { + "properties": { + "app": { + "$ref": "#/definitions/model.App" + }, + "appDetailId": { + "type": "integer" + }, + "appId": { + "type": "integer" + }, + "containerName": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "description": { + "type": "string" + }, + "dockerCompose": { + "type": "string" + }, + "env": { + "type": "string" + }, + "favorite": { + "type": "boolean" + }, + "httpPort": { + "type": "integer" + }, + "httpsPort": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "param": { + "type": "string" + }, + "serviceName": { + "type": "string" + }, + "status": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "version": { + "type": "string" + }, + "webUI": { + "type": "string" + } + }, + "type": "object" + }, + "model.Favorite": { + "properties": { + "createdAt": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "isDir": { + "type": "boolean" + }, + "isTxt": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "type": "object" + }, + "model.Runtime": { + "properties": { + "appDetailID": { + "type": "integer" + }, + "codeDir": { + "type": "string" + }, + "containerName": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "dockerCompose": { + "type": "string" + }, + "env": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "image": { + "type": "string" + }, + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "params": { + "type": "string" + }, + "port": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "resource": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "version": { + "type": "string" + }, + "workDir": { + "type": "string" + } + }, + "type": "object" + }, + "model.Website": { + "properties": { + "IPV6": { + "type": "boolean" + }, + "accessLog": { + "type": "boolean" + }, + "alias": { + "type": "string" + }, + "appInstallId": { + "type": "integer" + }, + "createdAt": { + "type": "string" + }, + "dbID": { + "type": "integer" + }, + "dbType": { + "type": "string" + }, + "defaultServer": { + "type": "boolean" + }, + "domains": { + "items": { + "$ref": "#/definitions/model.WebsiteDomain" + }, + "type": "array" + }, + "errorLog": { + "type": "boolean" + }, + "expireDate": { + "type": "string" + }, + "favorite": { + "type": "boolean" + }, + "ftpId": { + "type": "integer" + }, + "group": { + "type": "string" + }, + "httpConfig": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "parentWebsiteID": { + "type": "integer" + }, + "primaryDomain": { + "type": "string" + }, + "protocol": { + "type": "string" + }, + "proxy": { + "type": "string" + }, + "proxyType": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "rewrite": { + "type": "string" + }, + "runtimeID": { + "type": "integer" + }, + "siteDir": { + "type": "string" + }, + "status": { + "type": "string" + }, + "streamPorts": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "user": { + "type": "string" + }, + "webSiteGroupId": { + "type": "integer" + }, + "webSiteSSL": { + "$ref": "#/definitions/model.WebsiteSSL" + }, + "webSiteSSLId": { + "type": "integer" + } + }, + "type": "object" + }, + "model.WebsiteAcmeAccount": { + "properties": { + "caDirURL": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "eabHmacKey": { + "type": "string" + }, + "eabKid": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "keyType": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "url": { + "type": "string" + }, + "useProxy": { + "type": "boolean" + } + }, + "type": "object" + }, + "model.WebsiteDnsAccount": { + "properties": { + "createdAt": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "type": "object" + }, + "model.WebsiteDomain": { + "properties": { + "createdAt": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "port": { + "type": "integer" + }, + "ssl": { + "type": "boolean" + }, + "updatedAt": { + "type": "string" + }, + "websiteId": { + "type": "integer" + } + }, + "type": "object" + }, + "model.WebsiteSSL": { + "properties": { + "acmeAccount": { + "$ref": "#/definitions/model.WebsiteAcmeAccount" + }, + "acmeAccountId": { + "type": "integer" + }, + "autoRenew": { + "type": "boolean" + }, + "caId": { + "type": "integer" + }, + "certPath": { + "type": "string" + }, + "certURL": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "description": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "disableCNAME": { + "type": "boolean" + }, + "dnsAccount": { + "$ref": "#/definitions/model.WebsiteDnsAccount" + }, + "dnsAccountId": { + "type": "integer" + }, + "domains": { + "type": "string" + }, + "execShell": { + "type": "boolean" + }, + "expireDate": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "isIP": { + "type": "boolean" + }, + "keyType": { + "type": "string" + }, + "masterSslId": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "nameserver1": { + "type": "string" + }, + "nameserver2": { + "type": "string" + }, + "nodes": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "pem": { + "type": "string" + }, + "primaryDomain": { + "type": "string" + }, + "privateKey": { + "type": "string" + }, + "privateKeyPath": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "pushDir": { + "type": "boolean" + }, + "pushNode": { + "type": "boolean" + }, + "shell": { + "type": "string" + }, + "skipDNS": { + "type": "boolean" + }, + "startDate": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "websites": { + "items": { + "$ref": "#/definitions/model.Website" + }, + "type": "array" + } + }, + "type": "object" + }, + "request.AppConfigUpdate": { + "properties": { + "installID": { + "type": "integer" + }, + "webUI": { + "type": "string" + } + }, + "required": [ + "installID" + ], + "type": "object" + }, + "request.AppIgnoreUpgradeReq": { + "properties": { + "appDetailID": { + "type": "integer" + }, + "appID": { + "type": "integer" + }, + "scope": { + "enum": [ + "all", + "version" + ], + "type": "string" + } + }, + "required": [ + "appID", + "scope" + ], + "type": "object" + }, + "request.AppInstallCreate": { + "properties": { + "advanced": { + "type": "boolean" + }, + "allowPort": { + "type": "boolean" + }, + "appDetailId": { + "type": "integer" + }, + "containerName": { + "type": "string" + }, + "cpuQuota": { + "type": "number" + }, + "dockerCompose": { + "type": "string" + }, + "editCompose": { + "type": "boolean" + }, + "gpuConfig": { + "type": "boolean" + }, + "hostMode": { + "type": "boolean" + }, + "memoryLimit": { + "type": "number" + }, + "memoryUnit": { + "type": "string" + }, + "name": { + "type": "string" + }, + "params": { + "additionalProperties": true, + "type": "object" + }, + "pullImage": { + "type": "boolean" + }, + "restartPolicy": { + "enum": [ + "always", + "unless-stopped", + "no", + "on-failure" + ], + "type": "string" + }, + "services": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "specifyIP": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "type": { + "type": "string" + }, + "webUI": { + "type": "string" + } + }, + "required": [ + "appDetailId", + "name" + ], + "type": "object" + }, + "request.AppInstalledInfo": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object" + }, + "request.AppInstalledOperate": { + "properties": { + "backup": { + "type": "boolean" + }, + "backupId": { + "type": "integer" + }, + "deleteBackup": { + "type": "boolean" + }, + "deleteDB": { + "type": "boolean" + }, + "deleteImage": { + "type": "boolean" + }, + "detailId": { + "type": "integer" + }, + "dockerCompose": { + "type": "string" + }, + "favorite": { + "type": "boolean" + }, + "forceDelete": { + "type": "boolean" + }, + "installId": { + "type": "integer" + }, + "operate": { + "type": "string" + }, + "pullImage": { + "type": "boolean" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "installId", + "operate" + ], + "type": "object" + }, + "request.AppInstalledSearch": { + "properties": { + "all": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "sync": { + "type": "boolean" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "unused": { + "type": "boolean" + }, + "update": { + "type": "boolean" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "request.AppInstalledUpdate": { + "properties": { + "advanced": { + "type": "boolean" + }, + "allowPort": { + "type": "boolean" + }, + "containerName": { + "type": "string" + }, + "cpuQuota": { + "type": "number" + }, + "dockerCompose": { + "type": "string" + }, + "editCompose": { + "type": "boolean" + }, + "gpuConfig": { + "type": "boolean" + }, + "hostMode": { + "type": "boolean" + }, + "installId": { + "type": "integer" + }, + "memoryLimit": { + "type": "number" + }, + "memoryUnit": { + "type": "string" + }, + "params": { + "additionalProperties": true, + "type": "object" + }, + "pullImage": { + "type": "boolean" + }, + "restartPolicy": { + "enum": [ + "always", + "unless-stopped", + "no", + "on-failure" + ], + "type": "string" + }, + "specifyIP": { + "type": "string" + }, + "type": { + "type": "string" + }, + "webUI": { + "type": "string" + } + }, + "required": [ + "installId", + "params" + ], + "type": "object" + }, + "request.AppSearch": { + "properties": { + "name": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "recommend": { + "type": "boolean" + }, + "resource": { + "type": "string" + }, + "showCurrentArch": { + "type": "boolean" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "request.BatchWebsiteGroup": { + "properties": { + "groupID": { + "type": "integer" + }, + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "required": [ + "groupID", + "ids" + ], + "type": "object" + }, + "request.BatchWebsiteHttps": { + "properties": { + "SSLProtocol": { + "items": { + "type": "string" + }, + "type": "array" + }, + "algorithm": { + "type": "string" + }, + "certificate": { + "type": "string" + }, + "certificatePath": { + "type": "string" + }, + "hsts": { + "type": "boolean" + }, + "hstsIncludeSubDomains": { + "type": "boolean" + }, + "http3": { + "type": "boolean" + }, + "httpConfig": { + "enum": [ + "HTTPSOnly", + "HTTPAlso", + "HTTPToHTTPS" + ], + "type": "string" + }, + "httpsPorts": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "importType": { + "type": "string" + }, + "privateKey": { + "type": "string" + }, + "privateKeyPath": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "type": { + "enum": [ + "existed", + "auto", + "manual" + ], + "type": "string" + }, + "websiteSSLId": { + "type": "integer" + } + }, + "required": [ + "ids", + "taskID" + ], + "type": "object" + }, + "request.BatchWebsiteOp": { + "properties": { + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "operate": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "ids", + "operate", + "taskID" + ], + "type": "object" + }, + "request.ChangeDatabase": { + "properties": { + "databaseID": { + "type": "integer" + }, + "databaseType": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.CorsConfig": { + "properties": { + "allowCredentials": { + "type": "boolean" + }, + "allowHeaders": { + "type": "string" + }, + "allowMethods": { + "type": "string" + }, + "allowOrigins": { + "type": "string" + }, + "cors": { + "type": "boolean" + }, + "preflight": { + "type": "boolean" + } + }, + "type": "object" + }, + "request.CorsConfigReq": { + "properties": { + "allowCredentials": { + "type": "boolean" + }, + "allowHeaders": { + "type": "string" + }, + "allowMethods": { + "type": "string" + }, + "allowOrigins": { + "type": "string" + }, + "cors": { + "type": "boolean" + }, + "preflight": { + "type": "boolean" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.CrossSiteAccessOp": { + "properties": { + "operation": { + "enum": [ + "Enable", + "Disable" + ], + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "operation", + "websiteID" + ], + "type": "object" + }, + "request.CustomRewriteOperate": { + "properties": { + "content": { + "type": "string" + }, + "name": { + "type": "string" + }, + "operate": { + "enum": [ + "create", + "delete" + ], + "type": "string" + } + }, + "required": [ + "operate" + ], + "type": "object" + }, + "request.DirSizeReq": { + "properties": { + "path": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "request.DiskMountRequest": { + "properties": { + "autoMount": { + "type": "boolean" + }, + "device": { + "type": "string" + }, + "filesystem": { + "enum": [ + "ext4", + "xfs" + ], + "type": "string" + }, + "mountPoint": { + "type": "string" + }, + "noFail": { + "type": "boolean" + } + }, + "required": [ + "device", + "filesystem", + "mountPoint" + ], + "type": "object" + }, + "request.DiskPartitionRequest": { + "properties": { + "autoMount": { + "type": "boolean" + }, + "device": { + "type": "string" + }, + "filesystem": { + "enum": [ + "ext4", + "xfs" + ], + "type": "string" + }, + "label": { + "type": "string" + }, + "mountPoint": { + "type": "string" + } + }, + "required": [ + "device", + "filesystem", + "mountPoint" + ], + "type": "object" + }, + "request.DiskUnmountRequest": { + "properties": { + "mountPoint": { + "type": "string" + } + }, + "required": [ + "mountPoint" + ], + "type": "object" + }, + "request.Environment": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "request.ExecComposerReq": { + "properties": { + "command": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "extCommand": { + "type": "string" + }, + "mirror": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "user": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "command", + "dir", + "mirror", + "taskID", + "user", + "websiteID" + ], + "type": "object" + }, + "request.ExposedPort": { + "properties": { + "containerPort": { + "type": "integer" + }, + "hostIP": { + "type": "string" + }, + "hostPort": { + "type": "integer" + } + }, + "type": "object" + }, + "request.ExtraHost": { + "properties": { + "hostname": { + "type": "string" + }, + "ip": { + "type": "string" + } + }, + "type": "object" + }, + "request.FPMConfig": { + "properties": { + "id": { + "type": "integer" + }, + "params": { + "additionalProperties": true, + "type": "object" + } + }, + "required": [ + "id", + "params" + ], + "type": "object" + }, + "request.FavoriteCreate": { + "properties": { + "path": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "request.FavoriteDelete": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.FileBatchDelete": { + "properties": { + "isDir": { + "type": "boolean" + }, + "paths": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "paths" + ], + "type": "object" + }, + "request.FileCompress": { + "properties": { + "dst": { + "type": "string" + }, + "files": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "replace": { + "type": "boolean" + }, + "secret": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "dst", + "files", + "name", + "type" + ], + "type": "object" + }, + "request.FileContentReq": { + "properties": { + "isDetail": { + "type": "boolean" + }, + "path": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "request.FileConvert": { + "properties": { + "extension": { + "type": "string" + }, + "inputFile": { + "type": "string" + }, + "outputFormat": { + "type": "string" + }, + "path": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "extension", + "inputFile", + "outputFormat", + "path", + "type" + ], + "type": "object" + }, + "request.FileCreate": { + "properties": { + "content": { + "type": "string" + }, + "isDir": { + "type": "boolean" + }, + "isLink": { + "type": "boolean" + }, + "isSymlink": { + "type": "boolean" + }, + "linkPath": { + "type": "string" + }, + "mode": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "sub": { + "type": "boolean" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "request.FileDeCompress": { + "properties": { + "dst": { + "type": "string" + }, + "path": { + "type": "string" + }, + "secret": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "dst", + "path", + "type" + ], + "type": "object" + }, + "request.FileDelete": { + "properties": { + "forceDelete": { + "type": "boolean" + }, + "isDir": { + "type": "boolean" + }, + "path": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "request.FileDownload": { + "properties": { + "compress": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "paths": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name", + "paths", + "type" + ], + "type": "object" + }, + "request.FileEdit": { + "properties": { + "content": { + "type": "string" + }, + "path": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "request.FileMove": { + "properties": { + "cover": { + "type": "boolean" + }, + "coverPaths": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "newPath": { + "type": "string" + }, + "oldPaths": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + } + }, + "required": [ + "newPath", + "oldPaths", + "type" + ], + "type": "object" + }, + "request.FileOption": { + "properties": { + "containSub": { + "type": "boolean" + }, + "dir": { + "type": "boolean" + }, + "expand": { + "type": "boolean" + }, + "isDetail": { + "type": "boolean" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "search": { + "type": "string" + }, + "showHidden": { + "type": "boolean" + }, + "sortBy": { + "type": "string" + }, + "sortOrder": { + "type": "string" + } + }, + "type": "object" + }, + "request.FilePathCheck": { + "properties": { + "path": { + "type": "string" + }, + "withInit": { + "type": "boolean" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "request.FilePathsCheck": { + "properties": { + "paths": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "paths" + ], + "type": "object" + }, + "request.FileReadByLineReq": { + "properties": { + "ID": { + "type": "integer" + }, + "latest": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "resourceID": { + "type": "integer" + }, + "taskID": { + "type": "string" + }, + "taskOperate": { + "type": "string" + }, + "taskType": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize", + "type" + ], + "type": "object" + }, + "request.FileRename": { + "properties": { + "newName": { + "type": "string" + }, + "oldName": { + "type": "string" + } + }, + "required": [ + "newName", + "oldName" + ], + "type": "object" + }, + "request.FileRoleReq": { + "properties": { + "group": { + "type": "string" + }, + "mode": { + "type": "integer" + }, + "paths": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sub": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "required": [ + "group", + "mode", + "paths", + "user" + ], + "type": "object" + }, + "request.FileRoleUpdate": { + "properties": { + "group": { + "type": "string" + }, + "path": { + "type": "string" + }, + "sub": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "required": [ + "group", + "path", + "user" + ], + "type": "object" + }, + "request.FileWget": { + "properties": { + "ignoreCertificate": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "name", + "path", + "url" + ], + "type": "object" + }, + "request.HostToolConfig": { + "properties": { + "content": { + "type": "string" + }, + "operate": { + "enum": [ + "get", + "set" + ], + "type": "string" + }, + "type": { + "enum": [ + "supervisord" + ], + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "request.HostToolCreate": { + "properties": { + "configPath": { + "type": "string" + }, + "serviceName": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "request.HostToolReq": { + "properties": { + "operate": { + "enum": [ + "status", + "restart", + "start", + "stop" + ], + "type": "string" + }, + "type": { + "enum": [ + "supervisord" + ], + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "request.McpBindDomain": { + "properties": { + "domain": { + "type": "string" + }, + "ipList": { + "type": "string" + }, + "sslID": { + "type": "integer" + } + }, + "required": [ + "domain" + ], + "type": "object" + }, + "request.McpBindDomainUpdate": { + "properties": { + "ipList": { + "type": "string" + }, + "sslID": { + "type": "integer" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.McpServerCreate": { + "properties": { + "baseUrl": { + "type": "string" + }, + "command": { + "type": "string" + }, + "containerName": { + "type": "string" + }, + "environments": { + "items": { + "$ref": "#/definitions/request.Environment" + }, + "type": "array" + }, + "hostIP": { + "type": "string" + }, + "name": { + "type": "string" + }, + "outputTransport": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "ssePath": { + "type": "string" + }, + "streamableHttpPath": { + "type": "string" + }, + "type": { + "type": "string" + }, + "volumes": { + "items": { + "$ref": "#/definitions/request.Volume" + }, + "type": "array" + } + }, + "required": [ + "command", + "name", + "outputTransport", + "port", + "type" + ], + "type": "object" + }, + "request.McpServerDelete": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.McpServerOperate": { + "properties": { + "id": { + "type": "integer" + }, + "operate": { + "type": "string" + } + }, + "required": [ + "id", + "operate" + ], + "type": "object" + }, + "request.McpServerSearch": { + "properties": { + "name": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "sync": { + "type": "boolean" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "request.McpServerUpdate": { + "properties": { + "baseUrl": { + "type": "string" + }, + "command": { + "type": "string" + }, + "containerName": { + "type": "string" + }, + "environments": { + "items": { + "$ref": "#/definitions/request.Environment" + }, + "type": "array" + }, + "hostIP": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "outputTransport": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "ssePath": { + "type": "string" + }, + "streamableHttpPath": { + "type": "string" + }, + "type": { + "type": "string" + }, + "volumes": { + "items": { + "$ref": "#/definitions/request.Volume" + }, + "type": "array" + } + }, + "required": [ + "command", + "id", + "name", + "outputTransport", + "port", + "type" + ], + "type": "object" + }, + "request.NewAppInstall": { + "properties": { + "advanced": { + "type": "boolean" + }, + "allowPort": { + "type": "boolean" + }, + "appDetailID": { + "type": "integer" + }, + "containerName": { + "type": "string" + }, + "cpuQuota": { + "type": "number" + }, + "dockerCompose": { + "type": "string" + }, + "editCompose": { + "type": "boolean" + }, + "gpuConfig": { + "type": "boolean" + }, + "hostMode": { + "type": "boolean" + }, + "memoryLimit": { + "type": "number" + }, + "memoryUnit": { + "type": "string" + }, + "name": { + "type": "string" + }, + "params": { + "additionalProperties": true, + "type": "object" + }, + "pullImage": { + "type": "boolean" + }, + "restartPolicy": { + "enum": [ + "always", + "unless-stopped", + "no", + "on-failure" + ], + "type": "string" + }, + "specifyIP": { + "type": "string" + }, + "type": { + "type": "string" + }, + "webUI": { + "type": "string" + } + }, + "type": "object" + }, + "request.NginxAntiLeechUpdate": { + "properties": { + "blocked": { + "type": "boolean" + }, + "cache": { + "type": "boolean" + }, + "cacheTime": { + "type": "integer" + }, + "cacheUint": { + "type": "string" + }, + "enable": { + "type": "boolean" + }, + "extends": { + "type": "string" + }, + "logEnable": { + "type": "boolean" + }, + "noneRef": { + "type": "boolean" + }, + "return": { + "type": "string" + }, + "serverNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.NginxAuthReq": { + "properties": { + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.NginxAuthUpdate": { + "properties": { + "operate": { + "type": "string" + }, + "password": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "username": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "operate", + "websiteID" + ], + "type": "object" + }, + "request.NginxBuildReq": { + "properties": { + "mirror": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "mirror", + "taskID" + ], + "type": "object" + }, + "request.NginxCommonReq": { + "properties": { + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.NginxConfigFileUpdate": { + "properties": { + "backup": { + "type": "boolean" + }, + "content": { + "type": "string" + } + }, + "required": [ + "content" + ], + "type": "object" + }, + "request.NginxConfigUpdate": { + "properties": { + "operate": { + "enum": [ + "add", + "update", + "delete" + ], + "type": "string" + }, + "params": {}, + "scope": { + "$ref": "#/definitions/dto.NginxKey" + }, + "websiteId": { + "type": "integer" + } + }, + "required": [ + "operate" + ], + "type": "object" + }, + "request.NginxDefaultHTTPSUpdate": { + "properties": { + "operate": { + "enum": [ + "enable", + "disable" + ], + "type": "string" + }, + "sslRejectHandshake": { + "type": "boolean" + } + }, + "required": [ + "operate" + ], + "type": "object" + }, + "request.NginxModuleUpdate": { + "properties": { + "enable": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "operate": { + "enum": [ + "create", + "delete", + "update" + ], + "type": "string" + }, + "packages": { + "type": "string" + }, + "params": { + "type": "string" + }, + "script": { + "type": "string" + } + }, + "required": [ + "name", + "operate" + ], + "type": "object" + }, + "request.NginxPathAuthUpdate": { + "properties": { + "name": { + "type": "string" + }, + "operate": { + "type": "string" + }, + "password": { + "type": "string" + }, + "path": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "username": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "operate", + "websiteID" + ], + "type": "object" + }, + "request.NginxProxyCacheUpdate": { + "properties": { + "cacheExpire": { + "type": "integer" + }, + "cacheExpireUnit": { + "type": "string" + }, + "cacheLimit": { + "type": "integer" + }, + "cacheLimitUnit": { + "type": "string" + }, + "open": { + "type": "boolean" + }, + "shareCache": { + "type": "integer" + }, + "shareCacheUnit": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "cacheExpire", + "cacheExpireUnit", + "cacheLimit", + "cacheLimitUnit", + "shareCache", + "shareCacheUnit", + "websiteID" + ], + "type": "object" + }, + "request.NginxProxyUpdate": { + "properties": { + "content": { + "type": "string" + }, + "name": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "content", + "name", + "websiteID" + ], + "type": "object" + }, + "request.NginxRedirectReq": { + "properties": { + "domains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "enable": { + "type": "boolean" + }, + "keepPath": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "operate": { + "type": "string" + }, + "path": { + "type": "string" + }, + "redirect": { + "type": "string" + }, + "redirectRoot": { + "type": "boolean" + }, + "target": { + "type": "string" + }, + "type": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "name", + "operate", + "redirect", + "target", + "type", + "websiteID" + ], + "type": "object" + }, + "request.NginxRedirectUpdate": { + "properties": { + "content": { + "type": "string" + }, + "name": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "content", + "name", + "websiteID" + ], + "type": "object" + }, + "request.NginxRewriteReq": { + "properties": { + "name": { + "type": "string" + }, + "websiteId": { + "type": "integer" + } + }, + "required": [ + "name", + "websiteId" + ], + "type": "object" + }, + "request.NginxRewriteUpdate": { + "properties": { + "content": { + "type": "string" + }, + "name": { + "type": "string" + }, + "websiteId": { + "type": "integer" + } + }, + "required": [ + "name", + "websiteId" + ], + "type": "object" + }, + "request.NginxScopeReq": { + "properties": { + "scope": { + "$ref": "#/definitions/dto.NginxKey" + }, + "websiteId": { + "type": "integer" + } + }, + "required": [ + "scope" + ], + "type": "object" + }, + "request.NodeModuleReq": { + "properties": { + "ID": { + "type": "integer" + } + }, + "required": [ + "ID" + ], + "type": "object" + }, + "request.NodePackageReq": { + "properties": { + "codeDir": { + "type": "string" + } + }, + "type": "object" + }, + "request.PHPConfigUpdate": { + "properties": { + "disableFunctions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "type": "integer" + }, + "maxExecutionTime": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "scope": { + "type": "string" + }, + "uploadMaxSize": { + "type": "string" + } + }, + "required": [ + "id", + "scope" + ], + "type": "object" + }, + "request.PHPContainerConfig": { + "properties": { + "containerName": { + "type": "string" + }, + "environments": { + "items": { + "$ref": "#/definitions/request.Environment" + }, + "type": "array" + }, + "exposedPorts": { + "items": { + "$ref": "#/definitions/request.ExposedPort" + }, + "type": "array" + }, + "extraHosts": { + "items": { + "$ref": "#/definitions/request.ExtraHost" + }, + "type": "array" + }, + "id": { + "type": "integer" + }, + "volumes": { + "items": { + "$ref": "#/definitions/request.Volume" + }, + "type": "array" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.PHPExtensionInstallReq": { + "properties": { + "ID": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "taskID": { + "type": "string" + } + }, + "required": [ + "ID", + "name" + ], + "type": "object" + }, + "request.PHPExtensionsCreate": { + "properties": { + "extensions": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "extensions", + "name" + ], + "type": "object" + }, + "request.PHPExtensionsDelete": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.PHPExtensionsSearch": { + "properties": { + "all": { + "type": "boolean" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "request.PHPExtensionsUpdate": { + "properties": { + "extensions": { + "type": "string" + }, + "id": { + "type": "integer" + } + }, + "required": [ + "extensions", + "id" + ], + "type": "object" + }, + "request.PHPFileReq": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "request.PHPFileUpdate": { + "properties": { + "content": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "required": [ + "content", + "id", + "type" + ], + "type": "object" + }, + "request.PHPSupervisorProcessConfig": { + "properties": { + "autoRestart": { + "type": "string" + }, + "autoStart": { + "type": "string" + }, + "command": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "environment": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "numprocs": { + "type": "string" + }, + "operate": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.PHPSupervisorProcessFileReq": { + "properties": { + "content": { + "type": "string" + }, + "file": { + "enum": [ + "out.log", + "err.log", + "config" + ], + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "operate": { + "enum": [ + "get", + "clear", + "update" + ], + "type": "string" + } + }, + "required": [ + "file", + "id", + "name", + "operate" + ], + "type": "object" + }, + "request.PortUpdate": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "port": { + "type": "integer" + } + }, + "type": "object" + }, + "request.ProcessReq": { + "properties": { + "PID": { + "type": "integer" + } + }, + "required": [ + "PID" + ], + "type": "object" + }, + "request.RecycleBinReduce": { + "properties": { + "from": { + "type": "string" + }, + "name": { + "type": "string" + }, + "rName": { + "type": "string" + } + }, + "required": [ + "from", + "rName" + ], + "type": "object" + }, + "request.ReqWithID": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.RuntimeCreate": { + "properties": { + "appDetailId": { + "type": "integer" + }, + "clean": { + "type": "boolean" + }, + "codeDir": { + "type": "string" + }, + "environments": { + "items": { + "$ref": "#/definitions/request.Environment" + }, + "type": "array" + }, + "exposedPorts": { + "items": { + "$ref": "#/definitions/request.ExposedPort" + }, + "type": "array" + }, + "extraHosts": { + "items": { + "$ref": "#/definitions/request.ExtraHost" + }, + "type": "array" + }, + "image": { + "type": "string" + }, + "install": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "params": { + "additionalProperties": true, + "type": "object" + }, + "remark": { + "type": "string" + }, + "resource": { + "type": "string" + }, + "source": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "volumes": { + "items": { + "$ref": "#/definitions/request.Volume" + }, + "type": "array" + } + }, + "type": "object" + }, + "request.RuntimeDelete": { + "properties": { + "forceDelete": { + "type": "boolean" + }, + "id": { + "type": "integer" + } + }, + "type": "object" + }, + "request.RuntimeOperate": { + "properties": { + "ID": { + "type": "integer" + }, + "operate": { + "type": "string" + } + }, + "type": "object" + }, + "request.RuntimeRemark": { + "properties": { + "id": { + "type": "integer" + }, + "remark": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.RuntimeSearch": { + "properties": { + "name": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "request.RuntimeUpdate": { + "properties": { + "clean": { + "type": "boolean" + }, + "codeDir": { + "type": "string" + }, + "environments": { + "items": { + "$ref": "#/definitions/request.Environment" + }, + "type": "array" + }, + "exposedPorts": { + "items": { + "$ref": "#/definitions/request.ExposedPort" + }, + "type": "array" + }, + "extraHosts": { + "items": { + "$ref": "#/definitions/request.ExtraHost" + }, + "type": "array" + }, + "id": { + "type": "integer" + }, + "image": { + "type": "string" + }, + "install": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "params": { + "additionalProperties": true, + "type": "object" + }, + "rebuild": { + "type": "boolean" + }, + "remark": { + "type": "string" + }, + "source": { + "type": "string" + }, + "version": { + "type": "string" + }, + "volumes": { + "items": { + "$ref": "#/definitions/request.Volume" + }, + "type": "array" + } + }, + "type": "object" + }, + "request.SearchUploadWithPage": { + "properties": { + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "path": { + "type": "string" + } + }, + "required": [ + "page", + "pageSize", + "path" + ], + "type": "object" + }, + "request.StreamUpdate": { + "properties": { + "algorithm": { + "type": "string" + }, + "name": { + "type": "string" + }, + "servers": { + "items": { + "$ref": "#/definitions/dto.NginxUpstreamServer" + }, + "type": "array" + }, + "streamPorts": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.SupervisorProcessConfig": { + "properties": { + "autoRestart": { + "type": "string" + }, + "autoStart": { + "type": "string" + }, + "command": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "environment": { + "type": "string" + }, + "name": { + "type": "string" + }, + "numprocs": { + "type": "string" + }, + "operate": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "request.SupervisorProcessFileReq": { + "properties": { + "content": { + "type": "string" + }, + "file": { + "enum": [ + "out.log", + "err.log", + "config" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "operate": { + "enum": [ + "get", + "clear", + "update" + ], + "type": "string" + } + }, + "required": [ + "file", + "name", + "operate" + ], + "type": "object" + }, + "request.Volume": { + "properties": { + "source": { + "type": "string" + }, + "target": { + "type": "string" + } + }, + "type": "object" + }, + "request.WebsiteAcmeAccountCreate": { + "properties": { + "caDirURL": { + "type": "string" + }, + "eabHmacKey": { + "type": "string" + }, + "eabKid": { + "type": "string" + }, + "email": { + "type": "string" + }, + "keyType": { + "enum": [ + "P256", + "P384", + "2048", + "3072", + "4096", + "8192" + ], + "type": "string" + }, + "type": { + "enum": [ + "letsencrypt", + "zerossl", + "buypass", + "google", + "custom" + ], + "type": "string" + }, + "useProxy": { + "type": "boolean" + } + }, + "required": [ + "email", + "keyType", + "type" + ], + "type": "object" + }, + "request.WebsiteAcmeAccountUpdate": { + "properties": { + "id": { + "type": "integer" + }, + "useProxy": { + "type": "boolean" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.WebsiteBatchDelReq": { + "properties": { + "ids": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "required": [ + "ids" + ], + "type": "object" + }, + "request.WebsiteCACreate": { + "properties": { + "city": { + "type": "string" + }, + "commonName": { + "type": "string" + }, + "country": { + "type": "string" + }, + "keyType": { + "enum": [ + "P256", + "P384", + "2048", + "3072", + "4096", + "8192" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "organizationUint": { + "type": "string" + }, + "province": { + "type": "string" + } + }, + "required": [ + "commonName", + "country", + "keyType", + "name", + "organization" + ], + "type": "object" + }, + "request.WebsiteCAObtain": { + "properties": { + "autoRenew": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "domains": { + "type": "string" + }, + "execShell": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "keyType": { + "enum": [ + "P256", + "P384", + "2048", + "3072", + "4096", + "8192" + ], + "type": "string" + }, + "pushDir": { + "type": "boolean" + }, + "renew": { + "type": "boolean" + }, + "shell": { + "type": "string" + }, + "sslID": { + "type": "integer" + }, + "time": { + "type": "integer" + }, + "unit": { + "type": "string" + } + }, + "required": [ + "domains", + "id", + "keyType", + "time", + "unit" + ], + "type": "object" + }, + "request.WebsiteCASearch": { + "properties": { + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "request.WebsiteCommonReq": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.WebsiteCreate": { + "properties": { + "IPV6": { + "type": "boolean" + }, + "algorithm": { + "type": "string" + }, + "alias": { + "type": "string" + }, + "appID": { + "type": "integer" + }, + "appInstall": { + "$ref": "#/definitions/request.NewAppInstall" + }, + "appInstallID": { + "type": "integer" + }, + "appType": { + "enum": [ + "new", + "installed" + ], + "type": "string" + }, + "createDb": { + "type": "boolean" + }, + "dbFormat": { + "type": "string" + }, + "dbHost": { + "type": "string" + }, + "dbName": { + "type": "string" + }, + "dbPassword": { + "type": "string" + }, + "dbUser": { + "type": "string" + }, + "domains": { + "items": { + "$ref": "#/definitions/request.WebsiteDomain" + }, + "type": "array" + }, + "enableSSL": { + "type": "boolean" + }, + "ftpPassword": { + "type": "string" + }, + "ftpUser": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parentWebsiteID": { + "type": "integer" + }, + "port": { + "type": "integer" + }, + "proxy": { + "type": "string" + }, + "proxyType": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "runtimeID": { + "type": "integer" + }, + "servers": { + "items": { + "$ref": "#/definitions/dto.NginxUpstreamServer" + }, + "type": "array" + }, + "siteDir": { + "type": "string" + }, + "streamPorts": { + "type": "string" + }, + "taskID": { + "type": "string" + }, + "type": { + "type": "string" + }, + "webSiteGroupID": { + "type": "integer" + }, + "websiteSSLID": { + "type": "integer" + } + }, + "required": [ + "alias", + "type", + "webSiteGroupID" + ], + "type": "object" + }, + "request.WebsiteDNSReq": { + "properties": { + "acmeAccountId": { + "type": "integer" + }, + "websiteSSLId": { + "type": "integer" + } + }, + "required": [ + "acmeAccountId", + "websiteSSLId" + ], + "type": "object" + }, + "request.WebsiteDefaultUpdate": { + "properties": { + "id": { + "type": "integer" + } + }, + "type": "object" + }, + "request.WebsiteDelete": { + "properties": { + "deleteApp": { + "type": "boolean" + }, + "deleteBackup": { + "type": "boolean" + }, + "deleteDB": { + "type": "boolean" + }, + "forceDelete": { + "type": "boolean" + }, + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.WebsiteDnsAccountCreate": { + "properties": { + "authorization": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "authorization", + "name", + "type" + ], + "type": "object" + }, + "request.WebsiteDnsAccountUpdate": { + "properties": { + "authorization": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "authorization", + "id", + "name", + "type" + ], + "type": "object" + }, + "request.WebsiteDomain": { + "properties": { + "domain": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "ssl": { + "type": "boolean" + } + }, + "required": [ + "domain" + ], + "type": "object" + }, + "request.WebsiteDomainCreate": { + "properties": { + "domains": { + "items": { + "$ref": "#/definitions/request.WebsiteDomain" + }, + "type": "array" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "domains", + "websiteID" + ], + "type": "object" + }, + "request.WebsiteDomainDelete": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.WebsiteDomainUpdate": { + "properties": { + "id": { + "type": "integer" + }, + "ssl": { + "type": "boolean" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.WebsiteHTTPSOp": { + "properties": { + "SSLProtocol": { + "items": { + "type": "string" + }, + "type": "array" + }, + "algorithm": { + "type": "string" + }, + "certificate": { + "type": "string" + }, + "certificatePath": { + "type": "string" + }, + "enable": { + "type": "boolean" + }, + "hsts": { + "type": "boolean" + }, + "hstsIncludeSubDomains": { + "type": "boolean" + }, + "http3": { + "type": "boolean" + }, + "httpConfig": { + "enum": [ + "HTTPSOnly", + "HTTPAlso", + "HTTPToHTTPS" + ], + "type": "string" + }, + "httpsPorts": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "importType": { + "type": "string" + }, + "privateKey": { + "type": "string" + }, + "privateKeyPath": { + "type": "string" + }, + "type": { + "enum": [ + "existed", + "auto", + "manual" + ], + "type": "string" + }, + "websiteId": { + "type": "integer" + }, + "websiteSSLId": { + "type": "integer" + } + }, + "required": [ + "websiteId" + ], + "type": "object" + }, + "request.WebsiteHtmlUpdate": { + "properties": { + "content": { + "type": "string" + }, + "sync": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "required": [ + "content", + "type" + ], + "type": "object" + }, + "request.WebsiteInstallCheckReq": { + "properties": { + "InstallIds": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "request.WebsiteLBCreate": { + "properties": { + "algorithm": { + "type": "string" + }, + "name": { + "type": "string" + }, + "servers": { + "items": { + "$ref": "#/definitions/dto.NginxUpstreamServer" + }, + "type": "array" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "name", + "websiteID" + ], + "type": "object" + }, + "request.WebsiteLBDelete": { + "properties": { + "name": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "name", + "websiteID" + ], + "type": "object" + }, + "request.WebsiteLBUpdate": { + "properties": { + "algorithm": { + "type": "string" + }, + "name": { + "type": "string" + }, + "servers": { + "items": { + "$ref": "#/definitions/dto.NginxUpstreamServer" + }, + "type": "array" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "name", + "websiteID" + ], + "type": "object" + }, + "request.WebsiteLBUpdateFile": { + "properties": { + "content": { + "type": "string" + }, + "name": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "content", + "name", + "websiteID" + ], + "type": "object" + }, + "request.WebsiteLogReq": { + "properties": { + "id": { + "type": "integer" + }, + "logType": { + "type": "string" + }, + "operate": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "id", + "logType", + "operate" + ], + "type": "object" + }, + "request.WebsiteNginxUpdate": { + "properties": { + "content": { + "type": "string" + }, + "id": { + "type": "integer" + } + }, + "required": [ + "content", + "id" + ], + "type": "object" + }, + "request.WebsiteOp": { + "properties": { + "id": { + "type": "integer" + }, + "operate": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.WebsitePHPVersionReq": { + "properties": { + "runtimeID": { + "type": "integer" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.WebsiteProxyConfig": { + "properties": { + "allowCredentials": { + "type": "boolean" + }, + "allowHeaders": { + "type": "string" + }, + "allowMethods": { + "type": "string" + }, + "allowOrigins": { + "type": "string" + }, + "cache": { + "type": "boolean" + }, + "cacheTime": { + "type": "integer" + }, + "cacheUnit": { + "type": "string" + }, + "content": { + "type": "string" + }, + "cors": { + "type": "boolean" + }, + "enable": { + "type": "boolean" + }, + "filePath": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "match": { + "type": "string" + }, + "modifier": { + "type": "string" + }, + "name": { + "type": "string" + }, + "operate": { + "type": "string" + }, + "preflight": { + "type": "boolean" + }, + "proxyHost": { + "type": "string" + }, + "proxyPass": { + "type": "string" + }, + "proxySSLName": { + "type": "string" + }, + "replaces": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "serverCacheTime": { + "type": "integer" + }, + "serverCacheUnit": { + "type": "string" + }, + "sni": { + "type": "boolean" + } + }, + "required": [ + "id", + "match", + "name", + "operate", + "proxyHost", + "proxyPass" + ], + "type": "object" + }, + "request.WebsiteProxyReq": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.WebsiteRealIP": { + "properties": { + "ipFrom": { + "type": "string" + }, + "ipHeader": { + "type": "string" + }, + "ipOther": { + "type": "string" + }, + "open": { + "type": "boolean" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "request.WebsiteResourceReq": { + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "request.WebsiteSSLApply": { + "properties": { + "ID": { + "type": "integer" + }, + "disableLog": { + "type": "boolean" + }, + "nameservers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "skipDNSCheck": { + "type": "boolean" + } + }, + "required": [ + "ID" + ], + "type": "object" + }, + "request.WebsiteSSLCreate": { + "properties": { + "acmeAccountId": { + "type": "integer" + }, + "apply": { + "type": "boolean" + }, + "autoRenew": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "disableCNAME": { + "type": "boolean" + }, + "dnsAccountId": { + "type": "integer" + }, + "execShell": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "isIp": { + "type": "boolean" + }, + "keyType": { + "type": "string" + }, + "nameserver1": { + "type": "string" + }, + "nameserver2": { + "type": "string" + }, + "nodes": { + "type": "string" + }, + "otherDomains": { + "type": "string" + }, + "primaryDomain": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "pushDir": { + "type": "boolean" + }, + "pushNode": { + "type": "boolean" + }, + "shell": { + "type": "string" + }, + "skipDNS": { + "type": "boolean" + } + }, + "required": [ + "acmeAccountId", + "primaryDomain", + "provider" + ], + "type": "object" + }, + "request.WebsiteSSLSearch": { + "properties": { + "acmeAccountID": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "expire_date" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + }, + "required": [ + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "request.WebsiteSSLUpdate": { + "properties": { + "acmeAccountId": { + "type": "integer" + }, + "apply": { + "type": "boolean" + }, + "autoRenew": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "disableCNAME": { + "type": "boolean" + }, + "dnsAccountId": { + "type": "integer" + }, + "execShell": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "keyType": { + "type": "string" + }, + "nameserver1": { + "type": "string" + }, + "nameserver2": { + "type": "string" + }, + "nodes": { + "type": "string" + }, + "otherDomains": { + "type": "string" + }, + "primaryDomain": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "pushDir": { + "type": "boolean" + }, + "pushNode": { + "type": "boolean" + }, + "shell": { + "type": "string" + }, + "skipDNS": { + "type": "boolean" + } + }, + "required": [ + "id", + "primaryDomain", + "provider" + ], + "type": "object" + }, + "request.WebsiteSSLUpload": { + "properties": { + "certificate": { + "type": "string" + }, + "certificatePath": { + "type": "string" + }, + "description": { + "type": "string" + }, + "privateKey": { + "type": "string" + }, + "privateKeyPath": { + "type": "string" + }, + "sslID": { + "type": "integer" + }, + "type": { + "enum": [ + "paste", + "local" + ], + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "request.WebsiteSearch": { + "properties": { + "name": { + "type": "string" + }, + "order": { + "enum": [ + "null", + "ascending", + "descending" + ], + "type": "string" + }, + "orderBy": { + "enum": [ + "primary_domain", + "type", + "status", + "createdAt", + "expire_date", + "created_at", + "favorite" + ], + "type": "string" + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "websiteGroupId": { + "type": "integer" + } + }, + "required": [ + "order", + "orderBy", + "page", + "pageSize" + ], + "type": "object" + }, + "request.WebsiteUpdate": { + "properties": { + "IPV6": { + "type": "boolean" + }, + "expireDate": { + "type": "string" + }, + "favorite": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "primaryDomain": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "webSiteGroupID": { + "type": "integer" + } + }, + "required": [ + "id", + "primaryDomain" + ], + "type": "object" + }, + "request.WebsiteUpdateDir": { + "properties": { + "id": { + "type": "integer" + }, + "siteDir": { + "type": "string" + } + }, + "required": [ + "id", + "siteDir" + ], + "type": "object" + }, + "request.WebsiteUpdateDirPermission": { + "properties": { + "group": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "user": { + "type": "string" + } + }, + "required": [ + "group", + "id", + "user" + ], + "type": "object" + }, + "response.AppConfig": { + "properties": { + "advanced": { + "type": "boolean" + }, + "allowPort": { + "type": "boolean" + }, + "containerName": { + "type": "string" + }, + "cpuQuota": { + "type": "number" + }, + "dockerCompose": { + "type": "string" + }, + "editCompose": { + "type": "boolean" + }, + "gpuConfig": { + "type": "boolean" + }, + "hostMode": { + "type": "boolean" + }, + "memoryLimit": { + "type": "number" + }, + "memoryUnit": { + "type": "string" + }, + "params": { + "items": { + "$ref": "#/definitions/response.AppParam" + }, + "type": "array" + }, + "pullImage": { + "type": "boolean" + }, + "rawCompose": { + "type": "string" + }, + "restartPolicy": { + "enum": [ + "always", + "unless-stopped", + "no", + "on-failure" + ], + "type": "string" + }, + "specifyIP": { + "type": "string" + }, + "type": { + "type": "string" + }, + "webUI": { + "type": "string" + } + }, + "type": "object" + }, + "response.AppDTO": { + "properties": { + "architectures": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "crossVersionUpdate": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "document": { + "type": "string" + }, + "github": { + "type": "string" + }, + "gpuSupport": { + "type": "boolean" + }, + "icon": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "installed": { + "type": "boolean" + }, + "key": { + "type": "string" + }, + "lastModified": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "memoryRequired": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "readMe": { + "type": "string" + }, + "recommend": { + "type": "integer" + }, + "required": { + "type": "string" + }, + "requiredPanelVersion": { + "type": "number" + }, + "resource": { + "type": "string" + }, + "shortDescEn": { + "type": "string" + }, + "shortDescZh": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tags": { + "items": { + "$ref": "#/definitions/response.TagDTO" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "versions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "website": { + "type": "string" + } + }, + "type": "object" + }, + "response.AppDetailDTO": { + "properties": { + "appId": { + "type": "integer" + }, + "architectures": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "dockerCompose": { + "type": "string" + }, + "downloadCallBackUrl": { + "type": "string" + }, + "downloadUrl": { + "type": "string" + }, + "enable": { + "type": "boolean" + }, + "gpuSupport": { + "type": "boolean" + }, + "hostMode": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "image": { + "type": "string" + }, + "lastModified": { + "type": "integer" + }, + "lastVersion": { + "type": "string" + }, + "memoryRequired": { + "type": "integer" + }, + "params": {}, + "status": { + "type": "string" + }, + "update": { + "type": "boolean" + }, + "updatedAt": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "response.AppInstalledCheck": { + "properties": { + "app": { + "type": "string" + }, + "appInstallId": { + "type": "integer" + }, + "containerName": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "httpPort": { + "type": "integer" + }, + "httpsPort": { + "type": "integer" + }, + "installPath": { + "type": "string" + }, + "isExist": { + "type": "boolean" + }, + "lastBackupAt": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + }, + "websiteDir": { + "type": "string" + } + }, + "type": "object" + }, + "response.AppItem": { + "properties": { + "description": { + "type": "string" + }, + "gpuSupport": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "installed": { + "type": "boolean" + }, + "key": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "recommend": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "response.AppParam": { + "properties": { + "edit": { + "type": "boolean" + }, + "key": { + "type": "string" + }, + "label": { + "$ref": "#/definitions/dto.Locale" + }, + "labelEn": { + "type": "string" + }, + "labelZh": { + "type": "string" + }, + "multiple": { + "type": "boolean" + }, + "required": { + "type": "boolean" + }, + "rule": { + "type": "string" + }, + "showValue": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": {}, + "values": {} + }, + "type": "object" + }, + "response.AppRes": { + "properties": { + "items": { + "items": { + "$ref": "#/definitions/response.AppItem" + }, + "type": "array" + }, + "total": { + "type": "integer" + } + }, + "type": "object" + }, + "response.AppService": { + "properties": { + "config": {}, + "from": { + "type": "string" + }, + "label": { + "type": "string" + }, + "status": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "response.AppUpdateRes": { + "properties": { + "appList": { + "$ref": "#/definitions/dto.AppList" + }, + "appStoreLastModified": { + "type": "integer" + }, + "canUpdate": { + "type": "boolean" + }, + "isSyncing": { + "type": "boolean" + } + }, + "type": "object" + }, + "response.CompleteDiskInfo": { + "properties": { + "disks": { + "items": { + "$ref": "#/definitions/response.DiskInfo" + }, + "type": "array" + }, + "systemDisks": { + "items": { + "$ref": "#/definitions/response.DiskInfo" + }, + "type": "array" + }, + "totalCapacity": { + "type": "integer" + }, + "totalDisks": { + "type": "integer" + }, + "unpartitionedDisks": { + "items": { + "$ref": "#/definitions/response.DiskBasicInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.ComponentInfo": { + "properties": { + "error": { + "type": "string" + }, + "exists": { + "type": "boolean" + }, + "path": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "response.Database": { + "properties": { + "databaseName": { + "type": "string" + }, + "from": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "response.DatabaseConn": { + "properties": { + "containerName": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "serviceName": { + "type": "string" + }, + "status": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "response.DepthDirSizeRes": { + "properties": { + "path": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "response.DirSizeRes": { + "properties": { + "size": { + "type": "integer" + } + }, + "required": [ + "size" + ], + "type": "object" + }, + "response.DiskBasicInfo": { + "properties": { + "avail": { + "type": "string" + }, + "device": { + "type": "string" + }, + "diskType": { + "type": "string" + }, + "filesystem": { + "type": "string" + }, + "isMounted": { + "type": "boolean" + }, + "isRemovable": { + "type": "boolean" + }, + "isSystem": { + "type": "boolean" + }, + "model": { + "type": "string" + }, + "mountPoint": { + "type": "string" + }, + "serial": { + "type": "string" + }, + "size": { + "type": "string" + }, + "usePercent": { + "type": "integer" + }, + "used": { + "type": "string" + } + }, + "type": "object" + }, + "response.DiskInfo": { + "properties": { + "avail": { + "type": "string" + }, + "device": { + "type": "string" + }, + "diskType": { + "type": "string" + }, + "filesystem": { + "type": "string" + }, + "isMounted": { + "type": "boolean" + }, + "isRemovable": { + "type": "boolean" + }, + "isSystem": { + "type": "boolean" + }, + "model": { + "type": "string" + }, + "mountPoint": { + "type": "string" + }, + "partitions": { + "items": { + "$ref": "#/definitions/response.DiskBasicInfo" + }, + "type": "array" + }, + "serial": { + "type": "string" + }, + "size": { + "type": "string" + }, + "usePercent": { + "type": "integer" + }, + "used": { + "type": "string" + } + }, + "type": "object" + }, + "response.ExistFileInfo": { + "properties": { + "isDir": { + "type": "boolean" + }, + "modTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "response.FileInfo": { + "properties": { + "content": { + "type": "string" + }, + "extension": { + "type": "string" + }, + "favoriteID": { + "type": "integer" + }, + "gid": { + "type": "string" + }, + "group": { + "type": "string" + }, + "isDetail": { + "type": "boolean" + }, + "isDir": { + "type": "boolean" + }, + "isHidden": { + "type": "boolean" + }, + "isSymlink": { + "type": "boolean" + }, + "itemTotal": { + "type": "integer" + }, + "items": { + "items": { + "$ref": "#/definitions/files.FileInfo" + }, + "type": "array" + }, + "linkPath": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "modTime": { + "type": "string" + }, + "mode": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "updateTime": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "response.FileLineContent": { + "properties": { + "end": { + "type": "boolean" + }, + "lines": { + "items": { + "type": "string" + }, + "type": "array" + }, + "path": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "taskStatus": { + "type": "string" + }, + "total": { + "type": "integer" + }, + "totalLines": { + "type": "integer" + } + }, + "type": "object" + }, + "response.FileTree": { + "properties": { + "children": { + "items": { + "$ref": "#/definitions/response.FileTree" + }, + "type": "array" + }, + "extension": { + "type": "string" + }, + "id": { + "type": "string" + }, + "isDir": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + } + }, + "type": "object" + }, + "response.FileWgetRes": { + "properties": { + "key": { + "type": "string" + } + }, + "type": "object" + }, + "response.HostToolConfig": { + "properties": { + "content": { + "type": "string" + } + }, + "type": "object" + }, + "response.HostToolRes": { + "properties": { + "config": {}, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "response.McpBindDomainRes": { + "properties": { + "acmeAccountID": { + "type": "integer" + }, + "allowIPs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "connUrl": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "sslID": { + "type": "integer" + }, + "websiteID": { + "type": "integer" + } + }, + "type": "object" + }, + "response.McpServerDTO": { + "properties": { + "baseUrl": { + "type": "string" + }, + "command": { + "type": "string" + }, + "containerName": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "dockerCompose": { + "type": "string" + }, + "env": { + "type": "string" + }, + "environments": { + "items": { + "$ref": "#/definitions/request.Environment" + }, + "type": "array" + }, + "hostIP": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "outputTransport": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "ssePath": { + "type": "string" + }, + "status": { + "type": "string" + }, + "streamableHttpPath": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "volumes": { + "items": { + "$ref": "#/definitions/request.Volume" + }, + "type": "array" + }, + "websiteID": { + "type": "integer" + } + }, + "type": "object" + }, + "response.McpServersRes": { + "properties": { + "items": { + "items": { + "$ref": "#/definitions/response.McpServerDTO" + }, + "type": "array" + }, + "total": { + "type": "integer" + } + }, + "type": "object" + }, + "response.NginxAntiLeechRes": { + "properties": { + "blocked": { + "type": "boolean" + }, + "cache": { + "type": "boolean" + }, + "cacheTime": { + "type": "integer" + }, + "cacheUint": { + "type": "string" + }, + "enable": { + "type": "boolean" + }, + "extends": { + "type": "string" + }, + "logEnable": { + "type": "boolean" + }, + "noneRef": { + "type": "boolean" + }, + "return": { + "type": "string" + }, + "serverNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.NginxAuthRes": { + "properties": { + "enable": { + "type": "boolean" + }, + "items": { + "items": { + "$ref": "#/definitions/dto.NginxAuth" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.NginxBuildConfig": { + "properties": { + "mirror": { + "type": "string" + }, + "modules": { + "items": { + "$ref": "#/definitions/response.NginxModule" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.NginxConfigRes": { + "properties": { + "https": { + "type": "boolean" + }, + "sslRejectHandshake": { + "type": "boolean" + } + }, + "type": "object" + }, + "response.NginxFile": { + "properties": { + "content": { + "type": "string" + } + }, + "type": "object" + }, + "response.NginxModule": { + "properties": { + "enable": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "packages": { + "type": "string" + }, + "params": { + "type": "string" + }, + "script": { + "type": "string" + } + }, + "type": "object" + }, + "response.NginxParam": { + "properties": { + "name": { + "type": "string" + }, + "params": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.NginxPathAuthRes": { + "properties": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "response.NginxProxyCache": { + "properties": { + "cacheExpire": { + "type": "integer" + }, + "cacheExpireUnit": { + "type": "string" + }, + "cacheLimit": { + "type": "number" + }, + "cacheLimitUnit": { + "type": "string" + }, + "open": { + "type": "boolean" + }, + "shareCache": { + "type": "integer" + }, + "shareCacheUnit": { + "type": "string" + } + }, + "type": "object" + }, + "response.NginxRedirectConfig": { + "properties": { + "content": { + "type": "string" + }, + "domains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "enable": { + "type": "boolean" + }, + "filePath": { + "type": "string" + }, + "keepPath": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "redirect": { + "type": "string" + }, + "redirectRoot": { + "type": "boolean" + }, + "target": { + "type": "string" + }, + "type": { + "type": "string" + }, + "websiteID": { + "type": "integer" + } + }, + "type": "object" + }, + "response.NginxRewriteRes": { + "properties": { + "content": { + "type": "string" + } + }, + "type": "object" + }, + "response.NginxStatus": { + "properties": { + "accepts": { + "type": "integer" + }, + "active": { + "type": "integer" + }, + "handled": { + "type": "integer" + }, + "reading": { + "type": "integer" + }, + "requests": { + "type": "integer" + }, + "waiting": { + "type": "integer" + }, + "writing": { + "type": "integer" + } + }, + "type": "object" + }, + "response.NodeModule": { + "properties": { + "description": { + "type": "string" + }, + "license": { + "type": "string" + }, + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "response.PHPConfig": { + "properties": { + "disableFunctions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "maxExecutionTime": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "uploadMaxSize": { + "type": "string" + } + }, + "type": "object" + }, + "response.PHPExtensionRes": { + "properties": { + "extensions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "supportExtensions": { + "items": { + "$ref": "#/definitions/response.SupportExtension" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.PackageScripts": { + "properties": { + "name": { + "type": "string" + }, + "script": { + "type": "string" + } + }, + "type": "object" + }, + "response.ProcessStatus": { + "properties": { + "PID": { + "type": "string" + }, + "msg": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "type": "string" + }, + "uptime": { + "type": "string" + } + }, + "type": "object" + }, + "response.Resource": { + "properties": { + "detail": {}, + "name": { + "type": "string" + }, + "resourceID": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "response.RuntimeDTO": { + "properties": { + "appDetailID": { + "type": "integer" + }, + "appID": { + "type": "integer" + }, + "appParams": { + "items": { + "$ref": "#/definitions/response.AppParam" + }, + "type": "array" + }, + "codeDir": { + "type": "string" + }, + "container": { + "type": "string" + }, + "containerStatus": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "environments": { + "items": { + "$ref": "#/definitions/request.Environment" + }, + "type": "array" + }, + "exposedPorts": { + "items": { + "$ref": "#/definitions/request.ExposedPort" + }, + "type": "array" + }, + "extraHosts": { + "items": { + "$ref": "#/definitions/request.ExtraHost" + }, + "type": "array" + }, + "id": { + "type": "integer" + }, + "image": { + "type": "string" + }, + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "params": { + "additionalProperties": true, + "type": "object" + }, + "path": { + "type": "string" + }, + "port": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "resource": { + "type": "string" + }, + "source": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "volumes": { + "items": { + "$ref": "#/definitions/request.Volume" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.SupervisorProcessConfig": { + "properties": { + "autoRestart": { + "type": "string" + }, + "autoStart": { + "type": "string" + }, + "command": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "environment": { + "type": "string" + }, + "msg": { + "type": "string" + }, + "name": { + "type": "string" + }, + "numprocs": { + "type": "string" + }, + "status": { + "items": { + "$ref": "#/definitions/response.ProcessStatus" + }, + "type": "array" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "response.SupportExtension": { + "properties": { + "check": { + "type": "string" + }, + "description": { + "type": "string" + }, + "file": { + "type": "string" + }, + "installed": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "versions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.TagDTO": { + "properties": { + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "response.UserGroupResponse": { + "properties": { + "groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "users": { + "items": { + "$ref": "#/definitions/response.UserInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.UserInfo": { + "properties": { + "group": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "response.WebsiteAcmeAccountDTO": { + "properties": { + "caDirURL": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "eabHmacKey": { + "type": "string" + }, + "eabKid": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "keyType": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "url": { + "type": "string" + }, + "useProxy": { + "type": "boolean" + } + }, + "type": "object" + }, + "response.WebsiteCADTO": { + "properties": { + "city": { + "type": "string" + }, + "commonName": { + "type": "string" + }, + "country": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "csr": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "keyType": { + "type": "string" + }, + "name": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "organizationUint": { + "type": "string" + }, + "privateKey": { + "type": "string" + }, + "province": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "type": "object" + }, + "response.WebsiteDNSRes": { + "properties": { + "domain": { + "type": "string" + }, + "err": { + "type": "string" + }, + "resolve": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "response.WebsiteDTO": { + "properties": { + "IPV6": { + "type": "boolean" + }, + "accessLog": { + "type": "boolean" + }, + "accessLogPath": { + "type": "string" + }, + "algorithm": { + "type": "string" + }, + "alias": { + "type": "string" + }, + "appInstallId": { + "type": "integer" + }, + "appName": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "dbID": { + "type": "integer" + }, + "dbType": { + "type": "string" + }, + "defaultServer": { + "type": "boolean" + }, + "domains": { + "items": { + "$ref": "#/definitions/model.WebsiteDomain" + }, + "type": "array" + }, + "errorLog": { + "type": "boolean" + }, + "errorLogPath": { + "type": "string" + }, + "expireDate": { + "type": "string" + }, + "favorite": { + "type": "boolean" + }, + "ftpId": { + "type": "integer" + }, + "group": { + "type": "string" + }, + "httpConfig": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "openBaseDir": { + "type": "boolean" + }, + "parentWebsiteID": { + "type": "integer" + }, + "primaryDomain": { + "type": "string" + }, + "protocol": { + "type": "string" + }, + "proxy": { + "type": "string" + }, + "proxyType": { + "type": "string" + }, + "remark": { + "type": "string" + }, + "rewrite": { + "type": "string" + }, + "runtimeID": { + "type": "integer" + }, + "runtimeName": { + "type": "string" + }, + "runtimeType": { + "type": "string" + }, + "servers": { + "items": { + "$ref": "#/definitions/dto.NginxUpstreamServer" + }, + "type": "array" + }, + "siteDir": { + "type": "string" + }, + "sitePath": { + "type": "string" + }, + "status": { + "type": "string" + }, + "streamPorts": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "user": { + "type": "string" + }, + "webSiteGroupId": { + "type": "integer" + }, + "webSiteSSL": { + "$ref": "#/definitions/model.WebsiteSSL" + }, + "webSiteSSLId": { + "type": "integer" + } + }, + "type": "object" + }, + "response.WebsiteDirConfig": { + "properties": { + "dirs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "msg": { + "type": "string" + }, + "user": { + "type": "string" + }, + "userGroup": { + "type": "string" + } + }, + "type": "object" + }, + "response.WebsiteHTTPS": { + "properties": { + "SSL": { + "$ref": "#/definitions/model.WebsiteSSL" + }, + "SSLProtocol": { + "items": { + "type": "string" + }, + "type": "array" + }, + "algorithm": { + "type": "string" + }, + "enable": { + "type": "boolean" + }, + "hsts": { + "type": "boolean" + }, + "hstsIncludeSubDomains": { + "type": "boolean" + }, + "http3": { + "type": "boolean" + }, + "httpConfig": { + "type": "string" + }, + "httpsPort": { + "type": "string" + }, + "httpsPorts": { + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.WebsiteHtmlRes": { + "properties": { + "content": { + "type": "string" + } + }, + "type": "object" + }, + "response.WebsiteLog": { + "properties": { + "content": { + "type": "string" + }, + "enable": { + "type": "boolean" + }, + "end": { + "type": "boolean" + }, + "path": { + "type": "string" + } + }, + "type": "object" + }, + "response.WebsiteNginxConfig": { + "properties": { + "enable": { + "type": "boolean" + }, + "params": { + "items": { + "$ref": "#/definitions/response.NginxParam" + }, + "type": "array" + } + }, + "type": "object" + }, + "response.WebsiteOption": { + "properties": { + "alias": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "primaryDomain": { + "type": "string" + } + }, + "type": "object" + }, + "response.WebsitePreInstallCheck": { + "properties": { + "appName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "response.WebsiteRealIP": { + "properties": { + "ipFrom": { + "type": "string" + }, + "ipHeader": { + "type": "string" + }, + "ipOther": { + "type": "string" + }, + "open": { + "type": "boolean" + }, + "websiteID": { + "type": "integer" + } + }, + "required": [ + "websiteID" + ], + "type": "object" + }, + "response.WebsiteSSLDTO": { + "properties": { + "acmeAccount": { + "$ref": "#/definitions/model.WebsiteAcmeAccount" + }, + "acmeAccountId": { + "type": "integer" + }, + "autoRenew": { + "type": "boolean" + }, + "caId": { + "type": "integer" + }, + "certPath": { + "type": "string" + }, + "certURL": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "description": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "disableCNAME": { + "type": "boolean" + }, + "dnsAccount": { + "$ref": "#/definitions/model.WebsiteDnsAccount" + }, + "dnsAccountId": { + "type": "integer" + }, + "domains": { + "type": "string" + }, + "execShell": { + "type": "boolean" + }, + "expireDate": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "isIP": { + "type": "boolean" + }, + "keyType": { + "type": "string" + }, + "logPath": { + "type": "string" + }, + "masterSslId": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "nameserver1": { + "type": "string" + }, + "nameserver2": { + "type": "string" + }, + "nodes": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "pem": { + "type": "string" + }, + "primaryDomain": { + "type": "string" + }, + "privateKey": { + "type": "string" + }, + "privateKeyPath": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "pushDir": { + "type": "boolean" + }, + "pushNode": { + "type": "boolean" + }, + "shell": { + "type": "string" + }, + "skipDNS": { + "type": "boolean" + }, + "startDate": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "websites": { + "items": { + "$ref": "#/definitions/model.Website" + }, + "type": "array" + } + }, + "type": "object" + } + } +} \ No newline at end of file diff --git a/core/cmd/server/docs/swagger_test.go b/core/cmd/server/docs/swagger_test.go new file mode 100644 index 0000000..9f92254 --- /dev/null +++ b/core/cmd/server/docs/swagger_test.go @@ -0,0 +1,206 @@ +package docs + +import ( + "encoding/json" + "fmt" + "go/ast" + "go/parser" + "go/token" + "os" + "os/exec" + "path" + "strings" + "testing" +) + +func TestGenerateXlog(t *testing.T) { + workDir := "/usr/songliu/dev-v2/1Panel" + fset := token.NewFileSet() + + apiDirs := []string{workDir + "/agent/app/api/v2", workDir + "/core/app/api/v2", workDir + "/agent/xpack/app/api/v2", workDir + "/core/xpack/app/api/v2"} + + xlogMap := make(map[string]operationJson) + for _, dir := range apiDirs { + entries, _ := os.ReadDir(dir) + for _, info := range entries { + if info.IsDir() { + continue + } + fileItem, err := parser.ParseFile(fset, path.Join(dir, info.Name()), nil, parser.ParseComments) + if err != nil { + continue + } + for _, decl := range fileItem.Decls { + switch d := decl.(type) { + case *ast.FuncDecl: + if d.Doc != nil { + routerContent := "" + logContent := "" + for _, comment := range d.Doc.List { + if strings.HasPrefix(comment.Text, "// @Router") { + routerContent = replaceStr(comment.Text, "// @Router", "[post]", "[get]", " ") + } + if strings.HasPrefix(comment.Text, "// @x-panel-log") { + logContent = replaceStr(comment.Text, "// @x-panel-log", " ") + } + } + if len(routerContent) != 0 && len(logContent) != 0 { + var item operationJson + if err := json.Unmarshal([]byte(logContent), &item); err != nil { + panic(fmt.Sprintf("json unamrshal failed, err: %v", err)) + } + xlogMap[routerContent] = item + } + } + } + } + } + } + + newJson, err := json.MarshalIndent(xlogMap, "", "\t") + if err != nil { + panic(fmt.Sprintf("json marshal for new file failed, err: %v", err)) + } + if err := os.WriteFile("x-log.json", newJson, 0640); err != nil { + panic(fmt.Sprintf("write new swagger.json failed, err: %v", err)) + } +} + +func TestGenerateSwaggerDoc(t *testing.T) { + workDir := "/usr/songliu/dev-v2/1Panel" + swagBin := "/root/go/bin/swag" + + cmd1 := exec.Command(swagBin, "init", "-o", workDir+"/core/cmd/server/docs/docs_agent", "-d", workDir+"/agent", "-g", "../agent/cmd/server/main.go") + cmd1.Dir = workDir + std1, err := cmd1.CombinedOutput() + if err != nil { + fmt.Printf("generate swagger doc of agent failed, std1: %v, err: %v", string(std1), err) + return + } + cmd2 := exec.Command(swagBin, "init", "-o", workDir+"/core/cmd/server/docs/docs_core", "-d", workDir+"/core", "-g", "./cmd/server/main.go") + cmd2.Dir = workDir + std2, err := cmd2.CombinedOutput() + if err != nil { + fmt.Printf("generate swagger doc of core failed, std1: %v, err: %v", string(std2), err) + return + } + + agentJson := workDir + "/core/cmd/server/docs/docs_agent/swagger.json" + agentFile, err := os.ReadFile(agentJson) + if err != nil { + fmt.Printf("read file docs_agent failed, err: %v", err) + return + } + var agentSwagger Swagger + if err := json.Unmarshal(agentFile, &agentSwagger); err != nil { + fmt.Printf("agent json unmarshal failed, err: %v", err) + return + } + + coreJson := workDir + "/core/cmd/server/docs/docs_core/swagger.json" + coreFile, err := os.ReadFile(coreJson) + if err != nil { + fmt.Printf("read file docs_core failed, err: %v", err) + return + } + var coreSwagger Swagger + if err := json.Unmarshal(coreFile, &coreSwagger); err != nil { + fmt.Printf("core json unmarshal failed, err: %v", err) + return + } + + newSwagger := Swagger{ + Swagger: agentSwagger.Swagger, + Info: agentSwagger.Info, + Host: agentSwagger.Host, + BasePath: agentSwagger.BasePath, + Paths: agentSwagger.Paths, + Definitions: agentSwagger.Definitions, + } + + for key, val := range coreSwagger.Paths { + if _, ok := newSwagger.Paths[key]; !ok { + newSwagger.Paths[key] = val + } + } + for key, val := range coreSwagger.Definitions { + if _, ok := newSwagger.Definitions[key]; !ok { + newSwagger.Definitions[key] = val + } + } + + newJson, err := json.MarshalIndent(newSwagger, "", "\t") + if err != nil { + fmt.Printf("json marshal for new file failed, err: %v", err) + return + } + if err := os.WriteFile("swagger.json", newJson, 0640); err != nil { + fmt.Printf("write new swagger.json failed, err: %v", err) + return + } + docTemplate := strings.ReplaceAll(loadDefaultDocs(), "const docTemplate = \"aa\"", fmt.Sprintf("const docTemplate = `%s`", string(newJson))) + if err := os.WriteFile(workDir+"/core/cmd/server/docs/docs.go", []byte(docTemplate), 0640); err != nil { + fmt.Printf("write new docs.go failed, err: %v", err) + return + } + + _ = os.RemoveAll(workDir + "/core/cmd/server/docs/docs_agent") + _ = os.RemoveAll(workDir + "/core/cmd/server/docs/docs_core") +} + +type Swagger struct { + Swagger string `json:"swagger"` + Info interface{} `json:"info"` + Host string `json:"host"` + BasePath string `json:"basePath"` + Paths map[string]interface{} `json:"paths"` + Definitions map[string]interface{} `json:"definitions"` +} + +func loadDefaultDocs() string { + return `package docs + +import "github.com/swaggo/swag" + +const docTemplate = "aa" + +var SwaggerInfo = &swag.Spec{ + Version: "2.0", + Host: "localhost", + BasePath: "/api/v2", + Schemes: []string{}, + Title: "1Panel", + Description: "Top-Rated Web-based Linux Server Management Tool", + InfoInstanceName: "swagger", + SwaggerTemplate: docTemplate, + LeftDelim: "{{", + RightDelim: "}}", +} + +func init() { + swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo) +}` +} + +func replaceStr(val string, rep ...string) string { + for _, item := range rep { + val = strings.ReplaceAll(val, item, "") + } + return val +} + +type operationJson struct { + BodyKeys []string `json:"bodyKeys"` + ParamKeys []string `json:"paramKeys"` + BeforeFunctions []functionInfo `json:"beforeFunctions"` + FormatZH string `json:"formatZH"` + FormatEN string `json:"formatEN"` +} +type functionInfo struct { + InputColumn string `json:"input_column"` + InputValue string `json:"input_value"` + IsList bool `json:"isList"` + DB string `json:"db"` + OutputColumn string `json:"output_column"` + OutputValue string `json:"output_value"` +} diff --git a/core/cmd/server/docs/x-log.json b/core/cmd/server/docs/x-log.json new file mode 100644 index 0000000..2117d68 --- /dev/null +++ b/core/cmd/server/docs/x-log.json @@ -0,0 +1,3552 @@ +{ + "/ai/ollama/close": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "关闭Ollama模型连接[name]", + "formatEN": "closeconnforOllamamodel[name]" + }, + "/ai/ollama/model": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "添加Ollama模型[name]", + "formatEN": "addOllamamodel[name]" + }, + "/ai/ollama/model/del": { + "bodyKeys": [ + "ids" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "ids", + "isList": true, + "db": "ollama_models", + "output_column": "name", + "output_value": "names" + } + ], + "formatZH": "删除Ollama模型[names]", + "formatEN": "removeOllamamodel[names]" + }, + "/ai/ollama/model/recreate": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "添加Ollama模型重试[name]", + "formatEN": "re-addOllamamodel[name]" + }, + "/ai/ollama/model/sync": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "同步Ollama模型列表", + "formatEN": "syncOllamamodellist" + }, + "/apps/ignored/cancel": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "取消忽略应用升级", + "formatEN": "Cancelignoreapplicationupgrade" + }, + "/apps/install": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "安装应用[name]", + "formatEN": "Installapp[name]" + }, + "/apps/installed/config/update": { + "bodyKeys": [ + "installID", + "webUI" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "应用配置更新[installID]", + "formatEN": "Applicationconfigupdate[installID]" + }, + "/apps/installed/ignore": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "忽略应用升级", + "formatEN": "Ignoreapplicationupgrade" + }, + "/apps/installed/op": { + "bodyKeys": [ + "installId", + "operate" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "installId", + "isList": false, + "db": "app_installs", + "output_column": "app_id", + "output_value": "appId" + }, + { + "input_column": "id", + "input_value": "installId", + "isList": false, + "db": "app_installs", + "output_column": "name", + "output_value": "appName" + }, + { + "input_column": "id", + "input_value": "appId", + "isList": false, + "db": "apps", + "output_column": "key", + "output_value": "appKey" + } + ], + "formatZH": "[operate]应用[appKey][appName]", + "formatEN": "[operate]App[appKey][appName]" + }, + "/apps/installed/params/update": { + "bodyKeys": [ + "installId" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "应用参数修改[installId]", + "formatEN": "Applicationparamupdate[installId]" + }, + "/apps/installed/port/change": { + "bodyKeys": [ + "key", + "name", + "port" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "应用端口修改[key]-[name]=\u003e[port]", + "formatEN": "Applicationportupdate[key]-[name]=\u003e[port]" + }, + "/apps/installed/sync": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "同步已安装应用列表", + "formatEN": "Syncthelistofinstalledapps" + }, + "/apps/sync/local": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "应用商店同步", + "formatEN": "Appstoresynchronization" + }, + "/apps/sync/remote": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "应用商店同步", + "formatEN": "Appstoresynchronization" + }, + "/backups": { + "bodyKeys": [ + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建备份账号[type]", + "formatEN": "createbackupaccount[type]" + }, + "/backups/backup": { + "bodyKeys": [ + "type", + "name", + "detailName" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "备份[type]数据[name][detailName]", + "formatEN": "backup[type]data[name][detailName]" + }, + "/backups/del": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "backup_accounts", + "output_column": "type", + "output_value": "types" + } + ], + "formatZH": "删除备份账号[types]", + "formatEN": "deletebackupaccount[types]" + }, + "/backups/record/del": { + "bodyKeys": [ + "ids" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "ids", + "isList": true, + "db": "backup_records", + "output_column": "file_name", + "output_value": "files" + } + ], + "formatZH": "删除备份记录[files]", + "formatEN": "deletebackuprecords[files]" + }, + "/backups/record/download": { + "bodyKeys": [ + "source", + "fileName" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "下载备份记录[source][fileName]", + "formatEN": "downloadbackuprecords[source][fileName]" + }, + "/backups/recover": { + "bodyKeys": [ + "type", + "name", + "detailName", + "file" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "从[file]恢复[type]数据[name][detailName]", + "formatEN": "recover[type]data[name][detailName]from[file]" + }, + "/backups/recover/byupload": { + "bodyKeys": [ + "type", + "name", + "detailName", + "file" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "从[file]恢复[type]数据[name][detailName]", + "formatEN": "recover[type]data[name][detailName]from[file]" + }, + "/backups/update": { + "bodyKeys": [ + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新备份账号[types]", + "formatEN": "updatebackupaccount[types]" + }, + "/backups/upload": { + "bodyKeys": [ + "filePath" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "上传备份文件[filePath]", + "formatEN": "uploadbackupfile[filePath]" + }, + "/containers": { + "bodyKeys": [ + "name", + "image" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建容器[name][image]", + "formatEN": "createcontainer[name][image]" + }, + "/containers/clean/log": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "清理容器[name]日志", + "formatEN": "cleancontainer[name]logs" + }, + "/containers/compose": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建compose[name]", + "formatEN": "createcompose[name]" + }, + "/containers/compose/clean/log": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "清理容器编排[name]日志", + "formatEN": "cleancompose[name]logs" + }, + "/containers/compose/operate": { + "bodyKeys": [ + "name", + "operation" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "compose[operation][name]", + "formatEN": "compose[operation][name]" + }, + "/containers/compose/test": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "检测compose[name]格式", + "formatEN": "checkcompose[name]" + }, + "/containers/compose/update": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新compose[name]", + "formatEN": "updatecomposeinformation[name]" + }, + "/containers/daemonjson/update": { + "bodyKeys": [ + "key", + "value" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新配置[key]", + "formatEN": "Updatedconfiguration[key]" + }, + "/containers/daemonjson/update/byfile": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新配置文件", + "formatEN": "Updatedconfigurationfile" + }, + "/containers/docker/operate": { + "bodyKeys": [ + "operation" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "docker服务[operation]", + "formatEN": "[operation]dockerservice" + }, + "/containers/image/build": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "构建镜像[name]", + "formatEN": "buildimage[name]" + }, + "/containers/image/load": { + "bodyKeys": [ + "path" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "从[path]加载镜像", + "formatEN": "loadimagefrom[path]" + }, + "/containers/image/pull": { + "bodyKeys": [ + "repoID", + "imageName" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "repoID", + "isList": false, + "db": "image_repos", + "output_column": "name", + "output_value": "reponame" + } + ], + "formatZH": "镜像拉取[reponame][imageName]", + "formatEN": "imagepull[reponame][imageName]" + }, + "/containers/image/push": { + "bodyKeys": [ + "repoID", + "tagName", + "name" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "repoID", + "isList": false, + "db": "image_repos", + "output_column": "name", + "output_value": "reponame" + } + ], + "formatZH": "[tagName]推送到[reponame][name]", + "formatEN": "push[tagName]to[reponame][name]" + }, + "/containers/image/remove": { + "bodyKeys": [ + "names" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "移除镜像[names]", + "formatEN": "removeimage[names]" + }, + "/containers/image/save": { + "bodyKeys": [ + "tagName", + "path", + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "保留[tagName]为[path]/[name]", + "formatEN": "save[tagName]as[path]/[name]" + }, + "/containers/image/tag": { + "bodyKeys": [ + "repoID", + "targetName" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "repoID", + "isList": false, + "db": "image_repos", + "output_column": "name", + "output_value": "reponame" + } + ], + "formatZH": "tag镜像[reponame][targetName]", + "formatEN": "tagimage[reponame][targetName]" + }, + "/containers/ipv6option/update": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新ipv6配置", + "formatEN": "Updatedtheipv6option" + }, + "/containers/logoption/update": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新日志配置", + "formatEN": "Updatedthelogoption" + }, + "/containers/network": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建容器网络name", + "formatEN": "createcontainernetwork[name]" + }, + "/containers/network/del": { + "bodyKeys": [ + "names" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "删除容器网络[names]", + "formatEN": "deletecontainernetwork[names]" + }, + "/containers/operate": { + "bodyKeys": [ + "names", + "operation" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "容器[names]执行[operation]", + "formatEN": "container[operation][names]" + }, + "/containers/prune": { + "bodyKeys": [ + "pruneType" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "清理容器[pruneType]", + "formatEN": "cleancontainer[pruneType]" + }, + "/containers/rename": { + "bodyKeys": [ + "name", + "newName" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "容器重命名[name]=\u003e[newName]", + "formatEN": "renamecontainer[name]=\u003e[newName]" + }, + "/containers/repo": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建镜像仓库[name]", + "formatEN": "createimagerepo[name]" + }, + "/containers/repo/del": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "image_repos", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "删除镜像仓库[name]", + "formatEN": "deleteimagerepo[name]" + }, + "/containers/repo/update": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "image_repos", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "更新镜像仓库[name]", + "formatEN": "updateimagerepoinformation[name]" + }, + "/containers/template": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建compose模版[name]", + "formatEN": "createcomposetemplate[name]" + }, + "/containers/template/batch": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "批量导入编排模版", + "formatEN": "batchimportcomposetemplates" + }, + "/containers/template/del": { + "bodyKeys": [ + "ids" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "ids", + "isList": true, + "db": "compose_templates", + "output_column": "name", + "output_value": "names" + } + ], + "formatZH": "删除compose模版[names]", + "formatEN": "deletecomposetemplate[names]" + }, + "/containers/template/update": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "compose_templates", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "更新compose模版[name]", + "formatEN": "updatecomposetemplateinformation[name]" + }, + "/containers/update": { + "bodyKeys": [ + "name", + "image" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新容器[name][image]", + "formatEN": "updatecontainer[name][image]" + }, + "/containers/upgrade": { + "bodyKeys": [ + "names", + "image" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新容器镜像[names][image]", + "formatEN": "upgradecontainerimage[names][image]" + }, + "/containers/volume": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建容器存储卷[name]", + "formatEN": "createcontainervolume[name]" + }, + "/containers/volume/del": { + "bodyKeys": [ + "names" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "删除容器存储卷[names]", + "formatEN": "deletecontainervolume[names]" + }, + "/core/backups": { + "bodyKeys": [ + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建备份账号[type]", + "formatEN": "createbackupaccount[type]" + }, + "/core/backups/del": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "删除备份账号[name]", + "formatEN": "deletebackupaccount[name]" + }, + "/core/backups/update": { + "bodyKeys": [ + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新备份账号[types]", + "formatEN": "updatebackupaccount[types]" + }, + "/core/commands": { + "bodyKeys": [ + "name", + "command" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建快捷命令[name][command]", + "formatEN": "createquickcommand[name][command]" + }, + "/core/commands/del": { + "bodyKeys": [ + "ids" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "ids", + "isList": true, + "db": "commands", + "output_column": "name", + "output_value": "names" + } + ], + "formatZH": "删除快捷命令[names]", + "formatEN": "deletequickcommand[names]" + }, + "/core/commands/export": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "导出快速命令", + "formatEN": "exportquickcommands" + }, + "/core/commands/import": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "导入快速命令", + "formatEN": "importquickcommands" + }, + "/core/commands/update": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新快捷命令[name]", + "formatEN": "updatequickcommand[name]" + }, + "/core/groups": { + "bodyKeys": [ + "name", + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建组[name][type]", + "formatEN": "creategroup[name][type]" + }, + "/core/groups/del": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "groups", + "output_column": "name", + "output_value": "name" + }, + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "groups", + "output_column": "type", + "output_value": "type" + } + ], + "formatZH": "删除组[type][name]", + "formatEN": "deletegroup[type][name]" + }, + "/core/groups/update": { + "bodyKeys": [ + "name", + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新组[name][type]", + "formatEN": "updategroup[name][type]" + }, + "/core/hosts": { + "bodyKeys": [ + "name", + "addr" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建主机[name][addr]", + "formatEN": "createhost[name][addr]" + }, + "/core/hosts/del": { + "bodyKeys": [ + "ids" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "ids", + "isList": true, + "db": "hosts", + "output_column": "addr", + "output_value": "addrs" + } + ], + "formatZH": "删除主机[addrs]", + "formatEN": "deletehost[addrs]" + }, + "/core/hosts/update": { + "bodyKeys": [ + "name", + "addr" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新主机信息[name][addr]", + "formatEN": "updatehost[name][addr]" + }, + "/core/hosts/update/group": { + "bodyKeys": [ + "id", + "group" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "hosts", + "output_column": "addr", + "output_value": "addr" + } + ], + "formatZH": "切换主机[addr]分组=\u003e[group]", + "formatEN": "changehost[addr]group=\u003e[group]" + }, + "/core/licenses/add": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "添加许可证", + "formatEN": "importlicense" + }, + "/core/licenses/bind": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "绑定许可证", + "formatEN": "bindlicense" + }, + "/core/licenses/bind/free": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改许可证免费节点绑定", + "formatEN": "changebindoffreenodeforlicense" + }, + "/core/licenses/del": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "删除许可证", + "formatEN": "deletelicense" + }, + "/core/licenses/sync": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "同步许可证信息", + "formatEN": "synclicenseinfo" + }, + "/core/licenses/unbind": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "解绑许可证", + "formatEN": "unbindlicense" + }, + "/core/licenses/update": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "替换许可证", + "formatEN": "changelicense" + }, + "/core/logs/clean": { + "bodyKeys": [ + "logType" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "清空[logType]日志信息", + "formatEN": "Cleanthe[logType]loginformation" + }, + "/core/script": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "添加脚本库脚本[name]", + "formatEN": "addscript[name]" + }, + "/core/script/del": { + "bodyKeys": [ + "ids" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "ids", + "isList": true, + "db": "script_librarys", + "output_column": "name", + "output_value": "names" + } + ], + "formatZH": "删除脚本库脚本[names]", + "formatEN": "deletescript[names]" + }, + "/core/script/sync": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "同步脚本库脚本", + "formatEN": "syncscripts" + }, + "/core/script/update": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "cronjobs", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "更新脚本库脚本[name]", + "formatEN": "updatescript[name]" + }, + "/core/settings/api/config/generate/key": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "生成API接口密钥", + "formatEN": "generateapikey" + }, + "/core/settings/api/config/update": { + "bodyKeys": [ + "ipWhiteList" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新API接口配置=\u003eIP白名单:[ipWhiteList]", + "formatEN": "updateapiconfig=\u003eIPWhiteList:[ipWhiteList]" + }, + "/core/settings/bind/update": { + "bodyKeys": [ + "ipv6", + "bindAddress" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改系统监听信息=\u003eipv6:[ipv6],监听IP:[bindAddress]", + "formatEN": "updatesystembindinfo=\u003eipv6:[ipv6],监听IP:[bindAddress]" + }, + "/core/settings/expired/handle": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "重置过期密码", + "formatEN": "resetanexpiredPassword" + }, + "/core/settings/menu/default": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "初始化菜单", + "formatEN": "Initmenu." + }, + "/core/settings/menu/update": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "隐藏高级功能菜单", + "formatEN": "Hideadvancedfeaturemenu." + }, + "/core/settings/mfa/bind": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "mfa绑定", + "formatEN": "bindmfa" + }, + "/core/settings/password/update": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改系统密码", + "formatEN": "updatesystempassword" + }, + "/core/settings/port/update": { + "bodyKeys": [ + "serverPort" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改系统端口=\u003e[serverPort]", + "formatEN": "updatesystemport=\u003e[serverPort]" + }, + "/core/settings/proxy/update": { + "bodyKeys": [ + "proxyUrl", + "proxyPort" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "服务器代理配置[proxyPort]:[proxyPort]", + "formatEN": "setproxy[proxyPort]:[proxyPort]." + }, + "/core/settings/ssl/update": { + "bodyKeys": [ + "ssl" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改系统ssl=\u003e[ssl]", + "formatEN": "updatesystemssl=\u003e[ssl]" + }, + "/core/settings/terminal/update": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改系统终端配置", + "formatEN": "updatesystemterminalsetting" + }, + "/core/settings/update": { + "bodyKeys": [ + "key", + "value" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改系统配置[key]=\u003e[value]", + "formatEN": "updatesystemsetting[key]=\u003e[value]" + }, + "/core/settings/upgrade": { + "bodyKeys": [ + "version" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新系统=\u003e[version]", + "formatEN": "upgradesystem=\u003e[version]" + }, + "/core/xpack/nodes": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "添加节点[name]", + "formatEN": "addnode[name]" + }, + "/core/xpack/nodes/backup": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "备份主节点数据", + "formatEN": "backupmasterdata" + }, + "/core/xpack/nodes/backup/update": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改主节点备份设置", + "formatEN": "updatemasterbackupsetting" + }, + "/core/xpack/nodes/del": { + "bodyKeys": [ + "ids" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "ids", + "isList": true, + "db": "nodes", + "output_column": "name", + "output_value": "names" + } + ], + "formatZH": "删除节点[names]", + "formatEN": "deletenode[names]" + }, + "/core/xpack/nodes/fix": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "nodes", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "修复节点[name]", + "formatEN": "fixnode[name]" + }, + "/core/xpack/nodes/rollback": { + "bodyKeys": [ + "nodeID" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "nodeID", + "isList": false, + "db": "nodes", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "回滚节点[name]", + "formatEN": "rollbacknode[name]" + }, + "/core/xpack/nodes/simple": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "添加节点[name]", + "formatEN": "addnode[name]" + }, + "/core/xpack/nodes/simple/del": { + "bodyKeys": [ + "ids" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "ids", + "isList": true, + "db": "simple_nodes", + "output_column": "name", + "output_value": "names" + } + ], + "formatZH": "删除节点[names]", + "formatEN": "deletenode[names]" + }, + "/core/xpack/nodes/simple/update": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新[name]", + "formatEN": "updatenode[name]" + }, + "/core/xpack/nodes/simple/update/base": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新[name]基础信息", + "formatEN": "updatebaseinfofornode[name]" + }, + "/core/xpack/nodes/sync": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "nodes", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "同步节点数据[name]", + "formatEN": "syncnode[name]" + }, + "/core/xpack/nodes/update": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新[name]", + "formatEN": "updatenode[name]" + }, + "/core/xpack/nodes/update/base": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新[name]基础信息", + "formatEN": "updatebaseinfofornode[name]" + }, + "/core/xpack/nodes/upgrade": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "nodes", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "升级节点[name]", + "formatEN": "upgradenode[name]" + }, + "/core/xpack/nodes/upgrade/log/del": { + "bodyKeys": [ + "nodeID" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "nodeID", + "isList": false, + "db": "nodes", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "删除节点更新日志[name]", + "formatEN": "deletenodeupgradelog[name]" + }, + "/cronjobs": { + "bodyKeys": [ + "type", + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建计划任务[type][name]", + "formatEN": "createcronjob[type][name]" + }, + "/cronjobs/del": { + "bodyKeys": [ + "ids" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "ids", + "isList": true, + "db": "cronjobs", + "output_column": "name", + "output_value": "names" + } + ], + "formatZH": "删除计划任务[names]", + "formatEN": "deletecronjob[names]" + }, + "/cronjobs/group/update": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "cronjobs", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "更新计划任务分组[name]", + "formatEN": "updatecronjobgroup[name]" + }, + "/cronjobs/handle": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "cronjobs", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "手动执行计划任务[name]", + "formatEN": "manuallyexecutethecronjob[name]" + }, + "/cronjobs/records/clean": { + "bodyKeys": [ + "cronjobID" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "cronjobID", + "isList": false, + "db": "cronjobs", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "清空计划任务记录[name]", + "formatEN": "cleancronjob[name]records" + }, + "/cronjobs/status": { + "bodyKeys": [ + "id", + "status" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "cronjobs", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "修改计划任务[name]状态为[status]", + "formatEN": "changethestatusofcronjob[name]to[status]." + }, + "/cronjobs/update": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "cronjobs", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "更新计划任务[name]", + "formatEN": "updatecronjob[name]" + }, + "/dashboard/app/launcher/show": { + "bodyKeys": [ + "key", + "value" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "首页应用[key]=\u003e显示:[value]", + "formatEN": "applauncher[key]=\u003eshow:[value]" + }, + "/dashboard/quick/change": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "切换快速跳转", + "formatEN": "changequickjump" + }, + "/databases": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建mysql数据库[name]", + "formatEN": "createmysqldatabase[name]" + }, + "/databases/bind": { + "bodyKeys": [ + "database", + "username" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "绑定mysql数据库名[database][username]", + "formatEN": "bindmysqldatabase[database][username]" + }, + "/databases/change/access": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "database_mysqls", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "更新数据库[name]访问权限", + "formatEN": "Updatedatabase[name]access" + }, + "/databases/change/password": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "database_mysqls", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "更新数据库[name]密码", + "formatEN": "Updatedatabase[name]password" + }, + "/databases/common/update/conf": { + "bodyKeys": [ + "type", + "database" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新[type]数据库[database]配置信息", + "formatEN": "updatethe[type][database]databaseconfigurationinformation" + }, + "/databases/db": { + "bodyKeys": [ + "name", + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建远程数据库[name][type]", + "formatEN": "createdatabase[name][type]" + }, + "/databases/db/check": { + "bodyKeys": [ + "name", + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "检测远程数据库[name][type]连接性", + "formatEN": "checkifdatabase[name][type]isconnectable" + }, + "/databases/db/del": { + "bodyKeys": [ + "ids" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "ids", + "isList": true, + "db": "databases", + "output_column": "name", + "output_value": "names" + } + ], + "formatZH": "删除远程数据库[names]", + "formatEN": "deletedatabase[names]" + }, + "/databases/db/update": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新远程数据库[name]", + "formatEN": "updatedatabase[name]" + }, + "/databases/del": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "database_mysqls", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "删除mysql数据库[name]", + "formatEN": "deletemysqldatabase[name]" + }, + "/databases/description/update": { + "bodyKeys": [ + "id", + "description" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "database_mysqls", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "mysql数据库[name]描述信息修改[description]", + "formatEN": "Thedescriptionofthemysqldatabase[name]ismodified=\u003e[description]" + }, + "/databases/pg": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建postgresql数据库[name]", + "formatEN": "createpostgresqldatabase[name]" + }, + "/databases/pg/bind": { + "bodyKeys": [ + "name", + "username" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "绑定postgresql数据库[name]用户[username]", + "formatEN": "bindpostgresqldatabase[name]user[username]" + }, + "/databases/pg/del": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "database_postgresqls", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "删除postgresql数据库[name]", + "formatEN": "deletepostgresqldatabase[name]" + }, + "/databases/pg/description": { + "bodyKeys": [ + "id", + "description" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "database_postgresqls", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "postgresql数据库[name]描述信息修改[description]", + "formatEN": "Thedescriptionofthepostgresqldatabase[name]ismodified=\u003e[description]" + }, + "/databases/pg/password": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "database_postgresqls", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "更新数据库[name]密码", + "formatEN": "Updatedatabase[name]password" + }, + "/databases/pg/privileges": { + "bodyKeys": [ + "database", + "username" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新数据库[database]用户[username]权限", + "formatEN": "Update[user]privilegesofdatabase[database]" + }, + "/databases/redis/conf/update": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新redis数据库配置信息", + "formatEN": "updatetheredisdatabaseconfigurationinformation" + }, + "/databases/redis/password": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改redis数据库密码", + "formatEN": "changethepasswordoftheredisdatabase" + }, + "/databases/redis/persistence/update": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "redis数据库持久化配置更新", + "formatEN": "redisdatabasepersistenceconfigurationupdate" + }, + "/databases/variables/update": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "调整mysql数据库性能参数", + "formatEN": "adjustmysqldatabaseperformanceparameters" + }, + "/files": { + "bodyKeys": [ + "path" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建文件/文件夹[path]", + "formatEN": "Createdirorfile[path]" + }, + "/files/batch/del": { + "bodyKeys": [ + "paths" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "批量删除文件/文件夹[paths]", + "formatEN": "Batchdeletedirorfile[paths]" + }, + "/files/batch/role": { + "bodyKeys": [ + "paths", + "mode", + "user", + "group" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "批量修改文件权限和用户/组[paths]=\u003e[mode]/[user]/[group]", + "formatEN": "Batchchangefilemodeandowner[paths]=\u003e[mode]/[user]/[group]" + }, + "/files/chunkdownload": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "下载文件[name]", + "formatEN": "Downloadfile[name]" + }, + "/files/compress": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "压缩文件[name]", + "formatEN": "Compressfile[name]" + }, + "/files/content": { + "bodyKeys": [ + "path" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "获取文件内容[path]", + "formatEN": "Loadfilecontent[path]" + }, + "/files/decompress": { + "bodyKeys": [ + "path" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "解压[path]", + "formatEN": "Decompressfile[path]" + }, + "/files/del": { + "bodyKeys": [ + "path" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "删除文件/文件夹[path]", + "formatEN": "Deletedirorfile[path]" + }, + "/files/depth/size": { + "bodyKeys": [ + "path" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "获取目录及其第一层子目录文件夹大小[path]", + "formatEN": "Multifilesize[path]" + }, + "/files/favorite": { + "bodyKeys": [ + "path" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "收藏文件/文件夹[path]", + "formatEN": "收藏文件/文件夹[path]" + }, + "/files/favorite/del": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "favorites", + "output_column": "path", + "output_value": "path" + } + ], + "formatZH": "删除收藏[path]", + "formatEN": "deleteavorite[path]" + }, + "/files/mode": { + "bodyKeys": [ + "path", + "mode" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改权限[paths]=\u003e[mode]", + "formatEN": "Changemode[paths]=\u003e[mode]" + }, + "/files/move": { + "bodyKeys": [ + "oldPaths", + "newPath" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "移动文件[oldPaths]=\u003e[newPath]", + "formatEN": "Move[oldPaths]=\u003e[newPath]" + }, + "/files/owner": { + "bodyKeys": [ + "path", + "user", + "group" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改用户/组[paths]=\u003e[user]/[group]", + "formatEN": "Changeowner[paths]=\u003e[user]/[group]" + }, + "/files/preview": { + "bodyKeys": [ + "path" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "预览文件内容[path]", + "formatEN": "Previewfilecontent[path]" + }, + "/files/recycle/clear": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "清空回收站", + "formatEN": "清空回收站" + }, + "/files/recycle/reduce": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "还原回收站文件[name]", + "formatEN": "ReduceRecycleBinfile[name]" + }, + "/files/rename": { + "bodyKeys": [ + "oldName", + "newName" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "重命名[oldName]=\u003e[newName]", + "formatEN": "Rename[oldName]=\u003e[newName]" + }, + "/files/save": { + "bodyKeys": [ + "path" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新文件内容[path]", + "formatEN": "Updatefilecontent[path]" + }, + "/files/size": { + "bodyKeys": [ + "path" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "获取文件夹大小[path]", + "formatEN": "Loadfilesize[path]" + }, + "/files/upload": { + "bodyKeys": [ + "path", + "file" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "上传文件[path]/[file]", + "formatEN": "Uploadfile[path]/[file]" + }, + "/files/wget": { + "bodyKeys": [ + "url", + "path", + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "下载url=\u003e[path]/[name]", + "formatEN": "Downloadurl=\u003e[path]/[name]" + }, + "/groups": { + "bodyKeys": [ + "name", + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建组[name][type]", + "formatEN": "creategroup[name][type]" + }, + "/groups/del": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "groups", + "output_column": "name", + "output_value": "name" + }, + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "groups", + "output_column": "type", + "output_value": "type" + } + ], + "formatZH": "删除组[type][name]", + "formatEN": "deletegroup[type][name]" + }, + "/groups/update": { + "bodyKeys": [ + "name", + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新组[name][type]", + "formatEN": "updategroup[name][type]" + }, + "/hosts/disks/mount": { + "bodyKeys": [ + "device", + "mountPoint" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "挂载磁盘[device]到[mountPoint]", + "formatEN": "Mountdisk[device]to[mountPoint]" + }, + "/hosts/disks/partition": { + "bodyKeys": [ + "device", + "filesystem", + "mountPoint" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "对磁盘[device]进行分区,文件系统[filesystem],挂载点[mountPoint]", + "formatEN": "Partitiondisk[device]withfilesystem[filesystem],mountpoint[mountPoint]" + }, + "/hosts/disks/unmount": { + "bodyKeys": [ + "device", + "mountPoint" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "卸载磁盘[device]从[mountPoint]", + "formatEN": "Unmountdisk[device]from[mountPoint]" + }, + "/hosts/firewall/filter/operate": { + "bodyKeys": [ + "operate" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "[operate]iptablesfilter防火墙", + "formatEN": "[operate]iptablesfilterfirewall" + }, + "/hosts/firewall/filter/rule/operate": { + "bodyKeys": [ + "operation", + "chain" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "[operation]filter规则到[chain]", + "formatEN": "[operation]filterruleto[chain]" + }, + "/hosts/firewall/forward": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新端口转发规则", + "formatEN": "updateportforwardrules" + }, + "/hosts/firewall/ip": { + "bodyKeys": [ + "strategy", + "address" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "添加ip规则[strategy][address]", + "formatEN": "createaddressrules[strategy][address]" + }, + "/hosts/firewall/operate": { + "bodyKeys": [ + "operation" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "[operation]防火墙", + "formatEN": "[operation]firewall" + }, + "/hosts/firewall/port": { + "bodyKeys": [ + "port", + "strategy" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "添加端口规则[strategy][port]", + "formatEN": "createportrules[strategy][port]" + }, + "/hosts/monitor/clean": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "清空监控数据", + "formatEN": "cleanmonitordatas" + }, + "/hosts/monitor/setting/update": { + "bodyKeys": [ + "key", + "value" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改默认监控网卡[name]-[value]", + "formatEN": "updatedefaultmonitor[name]-[value]" + }, + "/hosts/ssh/cert": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "生成SSH密钥", + "formatEN": "generateSSHsecret" + }, + "/hosts/ssh/cert/delete": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "删除SSH密钥", + "formatEN": "deleteSSHsecret" + }, + "/hosts/ssh/cert/sync": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "同步SSH密钥", + "formatEN": "syncSSHsecret" + }, + "/hosts/ssh/cert/update": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "生成SSH密钥", + "formatEN": "generateSSHsecret" + }, + "/hosts/ssh/file/update": { + "bodyKeys": [ + "key" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改SSH配置文件[key]", + "formatEN": "updateSSHconf[key]" + }, + "/hosts/ssh/operate": { + "bodyKeys": [ + "operation" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "[operation]SSH", + "formatEN": "[operation]SSH" + }, + "/hosts/ssh/update": { + "bodyKeys": [ + "key", + "newValue" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改SSH配置[key]=\u003e[newValue]", + "formatEN": "updateSSHsetting[key]=\u003e[newValue]" + }, + "/hosts/tool/config": { + "bodyKeys": [ + "operate" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "[operate]主机工具配置文件", + "formatEN": "[operate]toolconfig" + }, + "/hosts/tool/init": { + "bodyKeys": [ + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建[type]配置", + "formatEN": "create[type]config" + }, + "/hosts/tool/operate": { + "bodyKeys": [ + "operate", + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "[operate][type]", + "formatEN": "[operate][type]" + }, + "/hosts/tool/supervisor/process": { + "bodyKeys": [ + "operate" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "[operate]守护进程", + "formatEN": "[operate]process" + }, + "/hosts/tool/supervisor/process/file": { + "bodyKeys": [ + "operate" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "[operate]Supervisor进程文件", + "formatEN": "[operate]SupervisorProcessConfigfile" + }, + "/openresty/build": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "构建OpenResty", + "formatEN": "BuildOpenResty" + }, + "/openresty/file": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新nginx配置", + "formatEN": "Updatenginxconf" + }, + "/openresty/modules/update": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新OpenResty模块", + "formatEN": "UpdateOpenRestymodule" + }, + "/openresty/update": { + "bodyKeys": [ + "websiteId" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "websiteId", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "更新nginx配置[domain]", + "formatEN": "Updatenginxconf[domain]" + }, + "/process/stop": { + "bodyKeys": [ + "PID" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "结束进程[PID]", + "formatEN": "结束进程[PID]" + }, + "/runtimes": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建运行环境[name]", + "formatEN": "Createruntime[name]" + }, + "/runtimes/del": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "删除运行环境[name]", + "formatEN": "Deleteruntime[name]" + }, + "/runtimes/operate": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "操作运行环境[name]", + "formatEN": "Operateruntime[name]" + }, + "/runtimes/php/config": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "[domain]PHP配置修改", + "formatEN": "[domain]PHPconfupdate" + }, + "/runtimes/php/update": { + "bodyKeys": [ + "websiteId" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "websiteId", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "php配置修改[domain]", + "formatEN": "Nginxconfupdate[domain]" + }, + "/runtimes/update": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新运行环境[name]", + "formatEN": "Updateruntime[name]" + }, + "/settings/snapshot": { + "bodyKeys": [ + "from", + "description" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建系统快照[description]到[from]", + "formatEN": "Createsystembackup[description]to[from]" + }, + "/settings/snapshot/del": { + "bodyKeys": [ + "ids" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "ids", + "isList": true, + "db": "snapshots", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "删除系统快照[name]", + "formatEN": "Deletesystembackup[name]" + }, + "/settings/snapshot/description/update": { + "bodyKeys": [ + "id", + "description" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "snapshots", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "快照[name]描述信息修改[description]", + "formatEN": "Thedescriptionofthesnapshot[name]ismodified=\u003e[description]" + }, + "/settings/snapshot/import": { + "bodyKeys": [ + "from", + "names" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "从[from]同步系统快照[names]", + "formatEN": "Syncsystemsnapshots[names]from[from]" + }, + "/settings/snapshot/recover": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "snapshots", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "从系统快照[name]恢复", + "formatEN": "Recoverfromsystembackup[name]" + }, + "/settings/snapshot/recreate": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "snapshots", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "重试创建快照[name]", + "formatEN": "recretethesnapshot[name]" + }, + "/settings/snapshot/rollback": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "snapshots", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "从系统快照[name]回滚", + "formatEN": "Rollbackfromsystembackup[name]" + }, + "/settings/ssh/conn/default": { + "bodyKeys": [ + "defaultConn" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "本地终端默认连接[defaultConn]", + "formatEN": "updatesystemdefaultconn[defaultConn]" + }, + "/settings/update": { + "bodyKeys": [ + "key", + "value" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改系统配置[key]=\u003e[value]", + "formatEN": "updatesystemsetting[key]=\u003e[value]" + }, + "/toolbox/clam": { + "bodyKeys": [ + "name", + "path" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建扫描规则[name][path]", + "formatEN": "createclam[name][path]" + }, + "/toolbox/clam/del": { + "bodyKeys": [ + "ids" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "ids", + "isList": true, + "db": "clams", + "output_column": "name", + "output_value": "names" + } + ], + "formatZH": "删除扫描规则[names]", + "formatEN": "deleteclam[names]" + }, + "/toolbox/clam/handle": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": true, + "db": "clams", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "执行病毒扫描[name]", + "formatEN": "handleclamscan[name]" + }, + "/toolbox/clam/operate": { + "bodyKeys": [ + "operation" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "[operation]Clam", + "formatEN": "[operation]FTP" + }, + "/toolbox/clam/record/clean": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": true, + "db": "clams", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "清空扫描报告[name]", + "formatEN": "cleanclamrecord[name]" + }, + "/toolbox/clam/status/update": { + "bodyKeys": [ + "id", + "status" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "clams", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "修改扫描规则[name]状态为[status]", + "formatEN": "changethestatusofclam[name]to[status]." + }, + "/toolbox/clam/update": { + "bodyKeys": [ + "name", + "path" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改扫描规则[name][path]", + "formatEN": "updateclam[name][path]" + }, + "/toolbox/clean": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "清理系统垃圾文件", + "formatEN": "Cleansystemjunkfiles" + }, + "/toolbox/device/update/conf": { + "bodyKeys": [ + "key", + "value" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改主机参数[key]=\u003e[value]", + "formatEN": "updatedeviceconf[key]=\u003e[value]" + }, + "/toolbox/device/update/host": { + "bodyKeys": [ + "key", + "value" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改主机Host[key]=\u003e[value]", + "formatEN": "updatedevicehost[key]=\u003e[value]" + }, + "/toolbox/device/update/swap": { + "bodyKeys": [ + "operate", + "path" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "[operate]主机swap[path]", + "formatEN": "[operate]deviceswap[path]" + }, + "/toolbox/fail2ban/operate": { + "bodyKeys": [ + "operation" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "[operation]Fail2ban", + "formatEN": "[operation]Fail2ban" + }, + "/toolbox/fail2ban/update": { + "bodyKeys": [ + "key", + "value" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改Fail2ban配置[key]=\u003e[value]", + "formatEN": "updatefail2banconf[key]=\u003e[value]" + }, + "/toolbox/ftp": { + "bodyKeys": [ + "user", + "path" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建FTP账户[user][path]", + "formatEN": "createFTP[user][path]" + }, + "/toolbox/ftp/del": { + "bodyKeys": [ + "ids" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "ids", + "isList": true, + "db": "ftps", + "output_column": "user", + "output_value": "users" + } + ], + "formatZH": "删除FTP账户[users]", + "formatEN": "deleteFTPusers[users]" + }, + "/toolbox/ftp/operate": { + "bodyKeys": [ + "operation" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "[operation]FTP", + "formatEN": "[operation]FTP" + }, + "/toolbox/ftp/sync": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "同步FTP账户", + "formatEN": "syncFTPusers" + }, + "/toolbox/ftp/update": { + "bodyKeys": [ + "user", + "path" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "修改FTP账户[user][path]", + "formatEN": "updateFTP[user][path]" + }, + "/toolbox/scan": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "扫描系统垃圾文件", + "formatEN": "scanSystemJunkFiles" + }, + "/websites": { + "bodyKeys": [ + "alias" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建网站[alias]", + "formatEN": "Createwebsite[alias]" + }, + "/websites/:id/https": { + "bodyKeys": [ + "websiteId" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "websiteId", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "更新网站[domain]https配置", + "formatEN": "Updatewebsitehttps[domain]conf" + }, + "/websites/acme": { + "bodyKeys": [ + "email" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建网站acme[email]", + "formatEN": "Createwebsiteacme[email]" + }, + "/websites/acme/del": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "website_acme_accounts", + "output_column": "email", + "output_value": "email" + } + ], + "formatZH": "删除网站acme[email]", + "formatEN": "Deletewebsiteacme[email]" + }, + "/websites/acme/update": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "website_acme_accounts", + "output_column": "email", + "output_value": "email" + } + ], + "formatZH": "更新acme[email]", + "formatEN": "Updateacme[email]" + }, + "/websites/ca": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建网站ca[name]", + "formatEN": "Createwebsiteca[name]" + }, + "/websites/ca/del": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "website_cas", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "删除网站ca[name]", + "formatEN": "Deletewebsiteca[name]" + }, + "/websites/ca/download": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "website_cas", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "下载CA证书文件[name]", + "formatEN": "downloadcafile[name]" + }, + "/websites/ca/obtain": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "website_cas", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "自签SSL证书[name]", + "formatEN": "ObtainSSL[name]" + }, + "/websites/ca/renew": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "website_cas", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "自签SSL证书[name]", + "formatEN": "ObtainSSL[name]" + }, + "/websites/config/update": { + "bodyKeys": [ + "websiteId" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "websiteId", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "nginx配置修改[domain]", + "formatEN": "Nginxconfupdate[domain]" + }, + "/websites/default/html/update": { + "bodyKeys": [ + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新默认html", + "formatEN": "Updatedefaulthtml" + }, + "/websites/default/server": { + "bodyKeys": [ + "id", + "operate" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "修改默认server=\u003e[domain]", + "formatEN": "Changedefaultserver=\u003e[domain]" + }, + "/websites/del": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "删除网站[domain]", + "formatEN": "Deletewebsite[domain]" + }, + "/websites/dir/permission": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "更新网站[domain]目录权限", + "formatEN": "Updatedomain[domain]dirpermission" + }, + "/websites/dir/update": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "更新网站[domain]目录", + "formatEN": "Updatedomain[domain]dir" + }, + "/websites/dns": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建网站dns[name]", + "formatEN": "Createwebsitedns[name]" + }, + "/websites/dns/del": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "website_dns_accounts", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "删除网站dns[name]", + "formatEN": "Deletewebsitedns[name]" + }, + "/websites/dns/update": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新网站dns[name]", + "formatEN": "Updatewebsitedns[name]" + }, + "/websites/domains": { + "bodyKeys": [ + "domain" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建域名[domain]", + "formatEN": "Createdomain[domain]" + }, + "/websites/domains/del": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "website_domains", + "output_column": "domain", + "output_value": "domain" + } + ], + "formatZH": "删除域名[domain]", + "formatEN": "Deletedomain[domain]" + }, + "/websites/domains/update": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "website_domains", + "output_column": "domain", + "output_value": "domain" + } + ], + "formatZH": "更新域名[domain]", + "formatEN": "Updatedomain[domain]" + }, + "/websites/log": { + "bodyKeys": [ + "id", + "operate" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "[domain][operate]日志", + "formatEN": "[domain][operate]logs" + }, + "/websites/nginx/update": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "[domain]Nginx配置修改", + "formatEN": "[domain]Nginxconfupdate" + }, + "/websites/operate": { + "bodyKeys": [ + "id", + "operate" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "[operate]网站[domain]", + "formatEN": "[operate]website[domain]" + }, + "/websites/php/version": { + "bodyKeys": [ + "websiteId" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "websiteId", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "php版本变更[domain]", + "formatEN": "phpversionupdate[domain]" + }, + "/websites/proxies/file": { + "bodyKeys": [ + "websiteID" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "websiteID", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "更新反向代理文件[domain]", + "formatEN": "Nginxconfproxyfileupdate[domain]" + }, + "/websites/proxies/update": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "修改网站[domain]反向代理配置", + "formatEN": "Updatedomain[domain]proxyconfig" + }, + "/websites/proxy/clear": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "清理Openresty代理缓存", + "formatEN": "Clearnginxproxycache" + }, + "/websites/realip/config": { + "bodyKeys": [ + "websiteID" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "websiteID", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "修改[domain]网站真实IP配置", + "formatEN": "ModifytherealIPconfigurationof[domain]website" + }, + "/websites/redirect/file": { + "bodyKeys": [ + "websiteID" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "websiteID", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "更新重定向文件[domain]", + "formatEN": "Nginxconfredirectfileupdate[domain]" + }, + "/websites/redirect/update": { + "bodyKeys": [ + "websiteID" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "websiteID", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "修改网站[domain]重定向配置", + "formatEN": "Updatedomain[domain]redirectconfig" + }, + "/websites/rewrite/update": { + "bodyKeys": [ + "websiteID" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "websiteID", + "isList": false, + "db": "websites", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "伪静态配置修改[domain]", + "formatEN": "Nginxconfrewriteupdate[domain]" + }, + "/websites/ssl": { + "bodyKeys": [ + "primaryDomain" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建网站ssl[primaryDomain]", + "formatEN": "Createwebsitessl[primaryDomain]" + }, + "/websites/ssl/del": { + "bodyKeys": [ + "ids" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "ids", + "isList": true, + "db": "website_ssls", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "删除ssl[domain]", + "formatEN": "Deletessl[domain]" + }, + "/websites/ssl/download": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "website_ssls", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "下载证书文件[domain]", + "formatEN": "downloadsslfile[domain]" + }, + "/websites/ssl/obtain": { + "bodyKeys": [ + "ID" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "ID", + "isList": false, + "db": "website_ssls", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "申请证书[domain]", + "formatEN": "applyssl[domain]" + }, + "/websites/ssl/update": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "website_ssls", + "output_column": "primary_domain", + "output_value": "domain" + } + ], + "formatZH": "更新证书设置[domain]", + "formatEN": "Updatesslconfig[domain]" + }, + "/websites/ssl/upload": { + "bodyKeys": [ + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "上传ssl[type]", + "formatEN": "Uploadssl[type]" + }, + "/websites/ssl/upload/file": { + "bodyKeys": [ + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "上传ssl文件[type]", + "formatEN": "Uploadsslfile[type]" + }, + "/websites/update": { + "bodyKeys": [ + "primaryDomain" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新网站[primaryDomain]", + "formatEN": "Updatewebsite[primaryDomain]" + }, + "/xpack/monitor/config/global": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新全局设置", + "formatEN": "updateglobalconfig" + }, + "/xpack/monitor/log/clear": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "清空日志", + "formatEN": "clearlog" + }, + "/xpack/monitor/site/update": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新网站设置", + "formatEN": "updatewebsiteconfig" + }, + "/xpack/tampers/template": { + "bodyKeys": [ + "name", + "content" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "保存防篡改模版[name]-[content]", + "formatEN": "savetampertemplateinfo[name]-[content]" + }, + "/xpack/tampers/template/del": { + "bodyKeys": [ + "id" + ], + "paramKeys": [], + "beforeFunctions": [ + { + "input_column": "id", + "input_value": "id", + "isList": false, + "db": "tampers", + "output_column": "name", + "output_value": "name" + } + ], + "formatZH": "删除防篡改模版[name]", + "formatEN": "deletetampertemplate[name]" + }, + "/xpack/tampers/update": { + "bodyKeys": [ + "website", + "status", + "path" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新防篡改信息[website][path]=\u003e[status]", + "formatEN": "updatetamperinfo[website][path]=\u003e[status]" + }, + "/xpack/waf/acl/create": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建自定义规则[name]", + "formatEN": "createacl[name]" + }, + "/xpack/waf/acl/delete": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "删除自定义规则[name]", + "formatEN": "deleteacl[name]" + }, + "/xpack/waf/acl/update": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新自定义规则[name]", + "formatEN": "updateacl[name]" + }, + "/xpack/waf/block/remove": { + "bodyKeys": [ + "ip" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "解封IP[ip]", + "formatEN": "unblockip[ip]" + }, + "/xpack/waf/cdn/update": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新CDN配置", + "formatEN": "updateCDNconfig" + }, + "/xpack/waf/config/global/state": { + "bodyKeys": [ + "scope", + "state" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新[state]全局配置[scope]", + "formatEN": "update[state]globalconfig[scope]" + }, + "/xpack/waf/config/website/state": { + "bodyKeys": [ + "scope", + "state" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新[state]网站配置[scope]", + "formatEN": "update[state]websiteconfig[scope]" + }, + "/xpack/waf/html/revert": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "回滚拦截页面[name]", + "formatEN": "reverthtmlres[name]" + }, + "/xpack/waf/html/update": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新拦截页面[name]", + "formatEN": "updatehtmlres[name]" + }, + "/xpack/waf/ip/default": { + "bodyKeys": [ + "ip", + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "添加IP[ip]到默认[type]组", + "formatEN": "addip[ip]todefault[type]group" + }, + "/xpack/waf/ip/group/create": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建IP组[name]", + "formatEN": "createipgroup[name]" + }, + "/xpack/waf/ip/group/delete": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "删除IP组[name]", + "formatEN": "deleteipgroup[name]" + }, + "/xpack/waf/ip/group/update": { + "bodyKeys": [ + "name" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新IP组[name]", + "formatEN": "updateipgroup[name]" + }, + "/xpack/waf/location/update": { + "bodyKeys": [ + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新[type]地址库信息", + "formatEN": "update[type]location" + }, + "/xpack/waf/log/clear": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "清空WAF日志", + "formatEN": "clearwaflog" + }, + "/xpack/waf/rule/cc": { + "bodyKeys": [ + "scope" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新[scope]频率访问限制", + "formatEN": "update[scope]CCconfig" + }, + "/xpack/waf/rule/common/create": { + "bodyKeys": [ + "scope" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建规则[scope]", + "formatEN": "createrule[scope]" + }, + "/xpack/waf/rule/common/delete": { + "bodyKeys": [ + "scope" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "删除规则[scope]", + "formatEN": "deleterule[scope]" + }, + "/xpack/waf/rule/common/export": { + "bodyKeys": [ + "scope" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "导出规则[scope]", + "formatEN": "exportrule[scope]" + }, + "/xpack/waf/rule/common/import": { + "bodyKeys": [ + "scope" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "导入规则[scope]", + "formatEN": "importrule[scope]" + }, + "/xpack/waf/rule/common/update": { + "bodyKeys": [ + "scope" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新规则[scope]", + "formatEN": "updaterule[scope]" + }, + "/xpack/waf/rule/geo": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新地区访问限制", + "formatEN": "updategeorestrict" + }, + "/xpack/waf/rule/ip/create": { + "bodyKeys": [ + "scope" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建[scope]IP规则", + "formatEN": "create[scope]IPrule" + }, + "/xpack/waf/rule/ip/delete": { + "bodyKeys": [ + "scope" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "删除[scope]IP规则", + "formatEN": "delete[scope]IPrule" + }, + "/xpack/waf/rule/ip/update": { + "bodyKeys": [ + "scope" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新[scope]IP规则", + "formatEN": "update[scope]IPrule" + }, + "/xpack/waf/rule/log": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新日志配置", + "formatEN": "updatewaflogconfig" + }, + "/xpack/waf/rule/urlcc/create": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "创建URL频率访问限制规则", + "formatEN": "createURLCCrule" + }, + "/xpack/waf/rule/urlcc/delete": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "删除URL频率访问限制规则", + "formatEN": "deleteURLCCrule" + }, + "/xpack/waf/rule/urlcc/update": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新URL频率访问限制规则", + "formatEN": "updateURLCCrule" + }, + "/xpack/waf/url/default": { + "bodyKeys": [ + "url", + "type" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "添加URL[url]到默认[type]组", + "formatEN": "addURL[url]todefault[type]group" + }, + "/xpack/website/rule/cc": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新网站频率访问限制", + "formatEN": "updatewebsiteCCconfig" + }, + "/xpack/website/rule/geo": { + "bodyKeys": [], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "更新网站地区访问限制", + "formatEN": "updategeorestrict" + } +} \ No newline at end of file diff --git a/core/cmd/server/main.go b/core/cmd/server/main.go new file mode 100644 index 0000000..73799cd --- /dev/null +++ b/core/cmd/server/main.go @@ -0,0 +1,45 @@ +package main + +import ( + "fmt" + "os" + + _ "net/http/pprof" + + "github.com/1Panel-dev/1Panel/core/cmd/server/cmd" + _ "github.com/1Panel-dev/1Panel/core/cmd/server/docs" +) + +// @title 1Panel +// @version 2.0 +// @description Top-Rated Web-based Linux Server Management Tool +// @termsOfService http://swagger.io/terms/ +// @license.name GPL-3.0 +// @license.url https://www.gnu.org/licenses/gpl-3.0.html +// @BasePath /api/v2 +// @schemes http https + +// @securityDefinitions.apikey ApiKeyAuth +// @description Custom Token Format, Format: md5('1panel' + API-Key + UnixTimestamp). +// @description ``` +// @description eg: +// @description curl -X GET "http://{host}:{port}/api/v2/toolbox/device/base" \ +// @description -H "1Panel-Token: <1panel_token>" \ +// @description -H "1Panel-Timestamp:The current environment has enabled secure login access.
+Run the following SSH command to view the panel login URL:
+1pctl user-info
+The current environment has enabled domain name binding.
+Run the following SSH command to reset the binding information:
+1pctl reset domain
+The current environment has enabled authorized IP access.
+Run the following SSH command to reset the binding information:
+1pctl reset ips
+