{
    "swagger": "2.0",
    "info": {
        "description": "devops server",
        "title": "Devops API",
        "contact": {},
        "version": "1.0"
    },
    "paths": {
        "/api/v1/devops-internal/github/pulls/sync": {
            "post": {
                "description": "sync all pull requests manually",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "GithubController"
                ],
                "operationId": "GithubControllerSyncPullRequests",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops-internal/github/repos/sync": {
            "post": {
                "description": "sync all repos manually",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "GithubController"
                ],
                "operationId": "GithubControllerSyncRepositories",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops-internal/release/releases/sync": {
            "post": {
                "description": "sync all releases manually",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerSyncReleaseManually",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops-internal/release/tickets/sync": {
            "post": {
                "description": "sync all tickets manually",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerSyncTicketManually",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops-internal/tenants": {
            "get": {
                "description": "list tenants internal",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenantService"
                ],
                "operationId": "ListTenantsInternal",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "internal",
                                "external"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "kind",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "asc",
                            "desc"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "OrderTypeASC",
                            "OrderTypeDESC"
                        ],
                        "name": "order",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "new_user",
                                "free_trial",
                                "poc",
                                "on_demand"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "plan",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "APAC",
                                "EMEA",
                                "JAPAN",
                                "NA",
                                "UNKNOWN"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "region",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "search",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "SKA",
                                "KA",
                                "SMB"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "segmentation",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "created_at",
                            "timezone"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "SortByTypeCreatedAt",
                            "SortByTypeTimezone"
                        ],
                        "name": "sort_by",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "pending",
                                "active",
                                "inactive",
                                "deleted",
                                "cleared"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "status",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/tenant.ListTenantResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops-internal/tenants/{tenant_id}": {
            "get": {
                "description": "get tenant internal",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenantService"
                ],
                "operationId": "GetTenantInternal",
                "parameters": [
                    {
                        "type": "string",
                        "description": "tenant_id",
                        "name": "tenant_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/tenant.GetTenantResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/api-keys": {
            "post": {
                "description": "generate a api key",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "RbacService"
                ],
                "operationId": "GenerateAPIKey",
                "parameters": [
                    {
                        "description": "request",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/rbac.GenerateAPIKeyReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/rbac.GenerateAPIKeyResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/approval/approvals/{appr_id}": {
            "get": {
                "description": "get a approval",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ApprovalController"
                ],
                "operationId": "ApprovalControllerGetApproval",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "approval id",
                        "name": "appr_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/approval.GetApprovalResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/approval/approvals/{appr_id}/approve": {
            "post": {
                "description": "approve a approval",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ApprovalController"
                ],
                "operationId": "ApprovalControllerUserApprove",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "approval id",
                        "name": "appr_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/approval/approvals/{appr_id}/reject": {
            "post": {
                "description": "approve a approval",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ApprovalController"
                ],
                "operationId": "ApprovalControllerUserReject",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "approval id",
                        "name": "appr_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/audit": {
            "get": {
                "description": "list audit logs",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "AuditController"
                ],
                "operationId": "AuditControllerListAuditLog",
                "parameters": [
                    {
                        "type": "string",
                        "name": "instance_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "change",
                            "ctl",
                            "gitops_secondary_confirm",
                            "cluster_maintenance",
                            "operation",
                            "jump",
                            "cloud_config_change"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "AuditLogTypeChange",
                            "AuditLogTypeCtl",
                            "AuditLogTypeSecondary",
                            "AuditLogTypeClusterMaintenance",
                            "AuditLogTypeOperation",
                            "AuditLogTypeJump",
                            "AuditLogTypeCloudConfigChange"
                        ],
                        "name": "type",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/audit.ListAuditLogResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/audit/changes": {
            "get": {
                "description": "list audit logs for changes",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "AuditController"
                ],
                "operationId": "AuditControllerListChangeAuditLog",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "change_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/audit.ListChangeAuditLogResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/audit/cluster-maintenance": {
            "get": {
                "description": "list audit logs for cluster maintenance",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "AuditController"
                ],
                "operationId": "AuditControllerListClusterMaintenanceAuditLog",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "maintenance_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/audit.ListClusterMaintenanceAuditLogResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/audit/ctl": {
            "get": {
                "description": "list audit logs for ctl",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "AuditController"
                ],
                "operationId": "AuditControllerListCtlAuditLog",
                "parameters": [
                    {
                        "type": "string",
                        "name": "cluster_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/audit.ListCtlAuditLogResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/audit/jumps": {
            "get": {
                "description": "list audit logs for jump authorizations",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "AuditController"
                ],
                "operationId": "AuditControllerListJumpAuditLog",
                "parameters": [
                    {
                        "type": "string",
                        "name": "authorization_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/audit.ListJumpAuditLogResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/audit/operations": {
            "get": {
                "description": "list audit logs for operation instances",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "AuditController"
                ],
                "operationId": "AuditControllerListOperationAuditLog",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "instance_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/audit.ListOperationAuditLogResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig-admin/parameter/attribute/clone": {
            "post": {
                "description": "clone paramter attributes from old version",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerCloneParameterAttribute",
                "parameters": [
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.CloneParamAttrReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig-admin/parameter/attribute/create": {
            "post": {
                "description": "create a paramter attribute",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerCreateParameterAttribute",
                "parameters": [
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.CreateParamAttrReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig-admin/parameter/attribute/{config_type}/{version}/{param_name}": {
            "put": {
                "description": "update a parameter attribute",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerUpdateParameterAttribute",
                "parameters": [
                    {
                        "type": "string",
                        "description": "config_type",
                        "name": "config_type",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "version",
                        "name": "version",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "param_name",
                        "name": "param_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.UpdateParamAttrReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig/changes/{change_id}": {
            "get": {
                "description": "get a config change of a cluster",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerGetConfigChange",
                "parameters": [
                    {
                        "type": "string",
                        "description": "change id",
                        "name": "change_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.GetConfigurationChangeResp"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig/changes/{change_id}/apply": {
            "post": {
                "description": "aplly a config change",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerApplyConfigurationChange",
                "parameters": [
                    {
                        "type": "string",
                        "description": "change id",
                        "name": "change_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.ApplyConfigurationChangeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig/changes/{change_id}/cancel": {
            "post": {
                "description": "cancel a config change",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerCancelConfigurationChange",
                "parameters": [
                    {
                        "type": "string",
                        "description": "change id",
                        "name": "change_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig/cluster/changes": {
            "get": {
                "description": "list config changes",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerListClusterConfigurationChanges",
                "parameters": [
                    {
                        "type": "string",
                        "name": "cluster_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            "",
                            "DEDICATED_TIDB",
                            "TICDC",
                            "TIPROXY"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "ClusterTypeUnknown",
                            "ClusterTypeDedicatedTiDB",
                            "ClusterTypeTiCDC",
                            "ClusterTypeTiProxy"
                        ],
                        "name": "cluster_type",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "name": "id_only",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.ListConfigurationChangeResp"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "post": {
                "description": "change the configuration of a cluster",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerCreateClusterConfigurationChange",
                "parameters": [
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.CreateClusterConfigurationChangeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.CreateConfigurationChangeResp"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig/cluster/changes/preview": {
            "post": {
                "description": "change the configuration of a cluster",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerPreviewClusterConfigurationChange",
                "parameters": [
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.PreviewClusterConfigurationChangeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.PreviewConfigurationChangeResp"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig/cluster/config": {
            "get": {
                "description": "get the current configuration of a cluster",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerGetClusterConfiguration",
                "parameters": [
                    {
                        "type": "string",
                        "name": "cluster_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            "",
                            "DEDICATED_TIDB",
                            "TICDC",
                            "TIPROXY"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "ClusterTypeUnknown",
                            "ClusterTypeDedicatedTiDB",
                            "ClusterTypeTiCDC",
                            "ClusterTypeTiProxy"
                        ],
                        "name": "cluster_type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.GetConfigurationResp"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig/config-types/{cluster_type}": {
            "get": {
                "description": "list available config types",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerListConfigTypes",
                "parameters": [
                    {
                        "enum": [
                            "",
                            "DEDICATED_TIDB",
                            "TICDC",
                            "TIPROXY"
                        ],
                        "type": "string",
                        "description": "cluster_type",
                        "name": "cluster_type",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.ListConfigTypesResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig/instance-types/{cluster_type}/{version}/{component}": {
            "get": {
                "description": "list available instance types",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerListInstanceTypes",
                "parameters": [
                    {
                        "enum": [
                            "",
                            "DEDICATED_TIDB",
                            "TICDC",
                            "TIPROXY"
                        ],
                        "type": "string",
                        "description": "cluster_type",
                        "name": "cluster_type",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "version",
                        "name": "version",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "component",
                        "name": "component",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.ListInstanceTypesResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig/parameter/attribute/{configtype}/{version}": {
            "get": {
                "description": "list parameter attributes",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerListParameterAttributes",
                "parameters": [
                    {
                        "type": "string",
                        "description": "configtype",
                        "name": "configtype",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "version",
                        "name": "version",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "name_in",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "name_like",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.ListParamAttrResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig/parameter/attribute/{configtype}/{version}/{param_name}": {
            "get": {
                "description": "get a parameter attribute",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerGetParameterAttribute",
                "parameters": [
                    {
                        "type": "string",
                        "description": "configtype",
                        "name": "configtype",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "version",
                        "name": "version",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "param_name",
                        "name": "param_name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.GetParamAttrResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig/templates": {
            "get": {
                "description": "list templates",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerListConfigTemplates",
                "parameters": [
                    {
                        "type": "string",
                        "name": "cloud_provider",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            "",
                            "DEDICATED_TIDB",
                            "TICDC",
                            "TIPROXY"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "ClusterTypeUnknown",
                            "ClusterTypeDedicatedTiDB",
                            "ClusterTypeTiCDC",
                            "ClusterTypeTiProxy"
                        ],
                        "name": "cluster_type",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "cluster_version",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "node_instance",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.ListConfigTemplatesResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig/templates/{template_id}": {
            "get": {
                "description": "get a template",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerGetConfigTemplate",
                "parameters": [
                    {
                        "type": "string",
                        "description": "template_id",
                        "name": "template_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "",
                            "DEDICATED_TIDB",
                            "TICDC",
                            "TIPROXY"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "ClusterTypeUnknown",
                            "ClusterTypeDedicatedTiDB",
                            "ClusterTypeTiCDC",
                            "ClusterTypeTiProxy"
                        ],
                        "name": "cluster_type",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "name": "usage",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.GetConfigTemplateResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig/tenantinit/changes": {
            "get": {
                "description": "list config changes",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerListTenantInitConfigurationChanges",
                "parameters": [
                    {
                        "enum": [
                            "",
                            "DEDICATED_TIDB",
                            "TICDC",
                            "TIPROXY"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "ClusterTypeUnknown",
                            "ClusterTypeDedicatedTiDB",
                            "ClusterTypeTiCDC",
                            "ClusterTypeTiProxy"
                        ],
                        "name": "cluster_type",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "name": "id_only",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "tenant_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.ListConfigurationChangeResp"
                        }
                    }
                }
            },
            "post": {
                "description": "change a tenant init configuration",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerCreateTenantInitConfigurationChange",
                "parameters": [
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.CreateTenantInitConfigurationChangeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.CreateConfigurationChangeResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig/tenantinit/changes/preview": {
            "post": {
                "description": "change the configuration of a cluster",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerPreviewTenantInitConfigurationChange",
                "parameters": [
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.PreviewTenantInitConfigurationChangeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.PreviewConfigurationChangeResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig/tenantinit/config": {
            "get": {
                "description": "get a tenant init config",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerGetTenantInitConfiguration",
                "parameters": [
                    {
                        "enum": [
                            "",
                            "DEDICATED_TIDB",
                            "TICDC",
                            "TIPROXY"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "ClusterTypeUnknown",
                            "ClusterTypeDedicatedTiDB",
                            "ClusterTypeTiCDC",
                            "ClusterTypeTiProxy"
                        ],
                        "name": "cluster_type",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "tenant_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.GetConfigurationResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cloudconfig/versions/{cluster_type}": {
            "get": {
                "description": "list available versions",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CloudConfigController"
                ],
                "operationId": "CloudConfigControllerListVersions",
                "parameters": [
                    {
                        "enum": [
                            "",
                            "DEDICATED_TIDB",
                            "TICDC",
                            "TIPROXY"
                        ],
                        "type": "string",
                        "description": "cluster_type",
                        "name": "cluster_type",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cloudconfig.ListVersionsResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cluster/k8sInfos": {
            "get": {
                "description": "list k8s infra information",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ClusterService"
                ],
                "operationId": "ListK8SInformation",
                "parameters": [
                    {
                        "enum": [
                            "aws",
                            "gcp"
                        ],
                        "type": "string",
                        "name": "cloud_provider",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "1.26",
                            "1.27",
                            "1.28",
                            "1.29",
                            "1.30"
                        ],
                        "type": "string",
                        "name": "version",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/k8supgrade.ListK8SInformationResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cluster/k8sInfos/{cloud_provider}/{k8s_name}": {
            "get": {
                "description": "get specific k8s infra information",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ClusterService"
                ],
                "operationId": "GetK8SInformation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "cloud provider",
                        "name": "cloud_provider",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "k8s name",
                        "name": "k8s_name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/k8supgrade.GetK8SInformationResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cluster/maintenances": {
            "get": {
                "description": "list maintenances",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ClusterService"
                ],
                "operationId": "ListMaintenances",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "csv",
                        "name": "project_ids",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "Pending",
                                "Running",
                                "Closed"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "statues",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cluster.ListMaintenancesResp"
                        }
                    }
                }
            },
            "post": {
                "description": "create a maintenances",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ClusterService"
                ],
                "operationId": "CreateMaintenance",
                "parameters": [
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/cluster.CreateMaintenanceReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cluster.CreateMaintenanceResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cluster/maintenances/{maintenance_id}": {
            "get": {
                "description": "get a maintenances",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ClusterService"
                ],
                "operationId": "GetMaintenance",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "maintenance id",
                        "name": "maintenance_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "name": "with_executions",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cluster.GetMaintenanceResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cluster/maintenances/{maintenance_id}/close": {
            "post": {
                "description": "close a maintenances",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ClusterService"
                ],
                "operationId": "CloseMaintenance",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "maintenance id",
                        "name": "maintenance_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cluster/maintenances/{maintenance_id}/executions/{execution_id}/cancel": {
            "post": {
                "description": "cancel a maintenance executions",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ClusterService"
                ],
                "operationId": "CancelMaintenanceExecution",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "maintenance id",
                        "name": "maintenance_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "execution id",
                        "name": "execution_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cluster/maintenances/{maintenance_id}/executions/{execution_id}/finish": {
            "post": {
                "description": "finish a maintenance executions",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ClusterService"
                ],
                "operationId": "FinishMaintenanceExecution",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "maintenance id",
                        "name": "maintenance_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "execution id",
                        "name": "execution_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/cluster/maintenances/{maintenance_id}/executions/{execution_id}/start": {
            "post": {
                "description": "start a maintenance executions",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ClusterService"
                ],
                "operationId": "StartMaintenanceExecution",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "maintenance id",
                        "name": "maintenance_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "execution id",
                        "name": "execution_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/clusters": {
            "get": {
                "description": "list cluster",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ClusterService"
                ],
                "operationId": "ListClusters",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "cluster_id",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "name": "is_dev_tier",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "project_id",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "tenant_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cluster.ListClustersResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/clusters/{cluster_id}": {
            "get": {
                "description": "get cluster",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ClusterService"
                ],
                "operationId": "GetCluster",
                "parameters": [
                    {
                        "type": "string",
                        "description": "cluster_id",
                        "name": "cluster_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cluster.GetClusterResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/clusters/{cluster_id}/alert-summary": {
            "get": {
                "description": "get alert summary",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ClusterService"
                ],
                "operationId": "GetAlertSummary",
                "parameters": [
                    {
                        "type": "string",
                        "description": "cluster id",
                        "name": "cluster_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "end_ts",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "start_ts",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cluster.GetAlertSummaryResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/clusters/{cluster_id}/alerts": {
            "get": {
                "description": "list alerts",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ClusterService"
                ],
                "operationId": "ListAlerts",
                "parameters": [
                    {
                        "type": "string",
                        "description": "cluster id",
                        "name": "cluster_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "end_ts",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "Major",
                                "Critical"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "priority",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "name": "recovered",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "search",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "start_ts",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            "internal",
                            "external"
                        ],
                        "type": "string",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/cluster.ListAlertsResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/configcenter/add": {
            "post": {
                "description": "Add Config Attribute for Some Version",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ConfigCenterService"
                ],
                "operationId": "AddConfigAttribute",
                "parameters": [
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/configcenter.AddAttributeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/configcenter/copy": {
            "post": {
                "description": "Copy All Config Attribute From Some Version",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ConfigCenterService"
                ],
                "operationId": "CopyAttributeFromVersion",
                "parameters": [
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/configcenter.CopyFromVersionReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/configcenter/list": {
            "get": {
                "description": "List Config Attribute in Some Version",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ConfigCenterService"
                ],
                "operationId": "ListConfigAttribute",
                "parameters": [
                    {
                        "type": "string",
                        "name": "component",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "param_name",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "version",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/configcenter.ListAttributesResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/configcenter/modify": {
            "post": {
                "description": "Modify some attribute",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ConfigCenterService"
                ],
                "operationId": "ModifyAttribute",
                "parameters": [
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/configcenter.ModifyReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/dashboard/cloud-oncall": {
            "get": {
                "description": "get cloud oncall info",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "DashboardService"
                ],
                "operationId": "GetCloudOncallInfo",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "endTs",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "startTs",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dashboard.CloudOncallInfoResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/dashboard/critical-alert": {
            "get": {
                "description": "get critical alert info",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "DashboardService"
                ],
                "operationId": "GetCriticalAlertInfo",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "endTs",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "startTs",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dashboard.CriticalAlertInfoResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/dashboard/incident": {
            "get": {
                "description": "get incident info",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "DashboardService"
                ],
                "operationId": "GetIncidentInfo",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "endTs",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "startTs",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dashboard.IncidentInfoResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/dashboard/release": {
            "get": {
                "description": "get release info",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "DashboardService"
                ],
                "operationId": "GetReleaseInfo",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "endTs",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "startTs",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dashboard.ReleaseInfoResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/dashboard/sla": {
            "get": {
                "description": "get sla info",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "DashboardService"
                ],
                "operationId": "GetSLAInfo",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "endTs",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "startTs",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dashboard.SLAInfoResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/dashboard/slo": {
            "get": {
                "description": "get slo info",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "DashboardService"
                ],
                "operationId": "GetSLOInfo",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dashboard.SLOInfoResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/dashboard/top-qps-tenants": {
            "get": {
                "description": "get top10 qps tenants",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "DashboardService"
                ],
                "operationId": "GetTop10QPSTenants",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dashboard.GetTop10QPSTenantsResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/dashboard/top-tiflash-storage-tenants": {
            "get": {
                "description": "get top10 tiflash storage tenants",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "DashboardService"
                ],
                "operationId": "GetTop10TiFlashStorageTenants",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dashboard.GetTop10TiFlashStorageTenantsResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/dashboard/top-tikv-storage-tenants": {
            "get": {
                "description": "get top10 tikv storage tenants",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "DashboardService"
                ],
                "operationId": "GetTop10TiKVStorageTenants",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dashboard.GetTop10TiKVStorageTenantsResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/github/pulls": {
            "get": {
                "description": "list pull requests.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "GithubController"
                ],
                "operationId": "GithubControllerListPullRequests",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "pr_locations",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "repo_location",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github.ListPullRequestsResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/github/pulls/{owner}/{repo}/{pr_number}": {
            "get": {
                "description": "get a pull request.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "GithubController"
                ],
                "operationId": "GithubControllerGetPullRequest",
                "parameters": [
                    {
                        "type": "string",
                        "description": "owner name",
                        "name": "owner",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "repo name",
                        "name": "repo",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "pr number",
                        "name": "pr_number",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github.GetPullRequestResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/github/raw/repos/{owner}/{repo}/labels": {
            "get": {
                "description": "list labels of a repo from github directly",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "GithubController"
                ],
                "operationId": "GithubControllerRawListLabels",
                "parameters": [
                    {
                        "type": "string",
                        "description": "owner name",
                        "name": "owner",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "repo name",
                        "name": "repo",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "cursor",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github.RawListLabelsResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/github/raw/repos/{owner}/{repo}/labels/{label_name}": {
            "get": {
                "description": "get a label from github directly",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "GithubController"
                ],
                "operationId": "GithubControllerRawGetLabel",
                "parameters": [
                    {
                        "type": "string",
                        "description": "owner name",
                        "name": "owner",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "repo name",
                        "name": "repo",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "label name",
                        "name": "label_name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github.RawGetLabelResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/github/raw/repos/{owner}/{repo}/pulls": {
            "get": {
                "description": "list pull requests from github directly",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "GithubController"
                ],
                "operationId": "GithubControllerRawListPullRequests",
                "parameters": [
                    {
                        "type": "string",
                        "description": "owner name",
                        "name": "owner",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "repo name",
                        "name": "repo",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "cursor",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "labels",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github.RawListPullRequestsResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/github/raw/repos/{owner}/{repo}/pulls/{pr_number}": {
            "get": {
                "description": "get a pull request from github directly",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "GithubController"
                ],
                "operationId": "GithubControllerRawGetPullRequest",
                "parameters": [
                    {
                        "type": "string",
                        "description": "owner name",
                        "name": "owner",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "repo name",
                        "name": "repo",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "pr number",
                        "name": "pr_number",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github.RawGetPullRequestResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/github/raw/repos/{owner}/{repo}/releases": {
            "get": {
                "description": "list releases from github directly",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "GithubController"
                ],
                "operationId": "GithubControllerRawListReleases",
                "parameters": [
                    {
                        "type": "string",
                        "description": "owner name",
                        "name": "owner",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "repo name",
                        "name": "repo",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "cursor",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github.RawListReleasesResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/github/raw/repos/{owner}/{repo}/releases/diff": {
            "get": {
                "description": "get pull requests between two releases from github directly",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "GithubController"
                ],
                "operationId": "GithubControllerRawDiffRelease",
                "parameters": [
                    {
                        "type": "string",
                        "description": "owner name",
                        "name": "owner",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "repo name",
                        "name": "repo",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "prev",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "target",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github.RawDiffReleaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/github/raw/repos/{owner}/{repo}/releases/{release_tag}": {
            "get": {
                "description": "get a release from github directly",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "GithubController"
                ],
                "operationId": "GithubControllerRawGetRelease",
                "parameters": [
                    {
                        "type": "string",
                        "description": "owner name",
                        "name": "owner",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "repo name",
                        "name": "repo",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "the tag name",
                        "name": "release_tag",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github.RawGetReleaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/github/repos": {
            "get": {
                "description": "list repositories of an org",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "GithubController"
                ],
                "operationId": "GithubControllerListRepositories",
                "parameters": [
                    {
                        "type": "string",
                        "name": "location_like",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "owners",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github.ListRepositoriesResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/github/repos/{owner}/{repo}": {
            "get": {
                "description": "get a repo",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "GithubController"
                ],
                "operationId": "GithubControllerGetRepo",
                "parameters": [
                    {
                        "type": "string",
                        "description": "owner name",
                        "name": "owner",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "repo name",
                        "name": "repo",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/github.GetRepositoryResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/incidents": {
            "get": {
                "description": "list incidents",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "ListIncidents",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.ListIncidentsResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "post": {
                "description": "create Incident",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "CreateIncident",
                "parameters": [
                    {
                        "description": "request",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/incident.CreateIncidentReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.CreateIncidentResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/incidents/{incident_id}": {
            "get": {
                "description": "get incident",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "GetIncident",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/entity.Incident"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "put": {
                "description": "update incident",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "UpdateIncident",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "request",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/incident.UpdateIncidentReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.UpdateIncidentResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "delete": {
                "description": "delete incident",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "DeleteIncident",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.DeleteIncidentResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/incidents/{incident_id}/log/{log_item_id}": {
            "put": {
                "description": "update incident log item",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "UpdateIncidentLogItem",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "log item id",
                        "name": "log_item_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "request",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/entity.IncidentLogItem"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.EmptyResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/incidents/{incident_id}/logs": {
            "get": {
                "description": "list incident logs",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "ListIncidentLogs",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.ListIncidentLogsResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "post": {
                "description": "create Incident log item",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "CreateIncidentLogItem",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "request",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/entity.IncidentLogItem"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.EmptyResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/incidents/{incident_id}/logs/{log_item_id}": {
            "get": {
                "description": "get incident log item",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "GetIncidentLogItem",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "log item id",
                        "name": "log_item_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/entity.IncidentLogItem"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "delete": {
                "description": "delete incident log item",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "DeleteIncidentLogItem",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "log item id",
                        "name": "log_item_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.DeleteIncidentLogItemResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/incidents/{incident_id}/postmortems": {
            "get": {
                "description": "list incident postmortem items",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "ListIncidentPostMortemItems",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "postmortem id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.ListIncidentPostMortemItemsResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "post": {
                "description": "create incident postmortem",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "CreateIncidentPostMortem",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "CreateIncidentPostMortemReq",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/incident.CreateIncidentPostMortemReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.CreateIncidentPostMortemResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/incidents/{incident_id}/postmortems/{postmortem_id}": {
            "get": {
                "description": "get incident postmortem",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "GetIncidentPostMortem",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "postmortem id",
                        "name": "postmortem_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.GetIncidentPostMortemResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "post": {
                "description": "update incident postmortem",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "UpdateIncidentPostMortem",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "postmortem id",
                        "name": "postmortem_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "UpdateIncidentPostMortemReq",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/incident.UpdateIncidentPostMortemReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.UpdateIncidentPostMortemResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "delete": {
                "description": "delete incident postmortem",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "DeleteIncidentPostMortem",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "postmortem id",
                        "name": "postmortem_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.DeleteIncidentPostMortemResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/incidents/{incident_id}/postmortems/{postmortem_id}/timelines": {
            "get": {
                "description": "list incident postmortem timelines",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "ListIncidentPostMortemTimelines",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "postmortem id",
                        "name": "postmortem_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.ListIncidentPostMortemTimelinesResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "post": {
                "description": "create incident postmortem timeline",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "CreateIncidentPostMortemTimeline",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "postmortem id",
                        "name": "postmortem_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "CreateIncidentPostMortemTimelineReq",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/incident.CreateIncidentPostMortemTimelineReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.CreateIncidentPostMortemTimelineResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/incidents/{incident_id}/postmortems/{postmortem_id}/timelines/{timeline_id}": {
            "get": {
                "description": "get incident postmortem timeline",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "GetIncidentPostMortemTimeline",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "postmortem id",
                        "name": "postmortem_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "timeline id",
                        "name": "timeline_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.GetIncidentPostMortemTimelineResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "post": {
                "description": "update incident postmortem timeline",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "UpdateIncidentPostMortemTimeline",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "postmortem id",
                        "name": "postmortem_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "action id",
                        "name": "timeline_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "UpdateIncidentPostMortemTimelineReq",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/incident.UpdateIncidentPostMortemTimelineReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.UpdateIncidentPostMortemTimelineResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "delete": {
                "description": "delete incident postmortem timeline",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "DeleteIncidentPostMortemTimeline",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "postmortem id",
                        "name": "postmortem_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "timeline id",
                        "name": "timeline_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.DeleteIncidentPostMortemTimelineResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/incidents/{incident_id}/postmortems/{postmortem_id}/todoactions": {
            "get": {
                "description": "list incident postmortem todo actions",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "ListIncidentPostMortemToDoActions",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "postmortem id",
                        "name": "postmortem_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.ListIncidentPostMortemToDoActionsResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "post": {
                "description": "create incident postmortem todo action",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "CreateIncidentPostMortemToDoAction",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "postmortem id",
                        "name": "postmortem_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "CreateIncidentPostMortemToDoActionReq",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/incident.CreateIncidentPostMortemToDoActionReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.CreateIncidentPostMortemToDoActionResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/incidents/{incident_id}/postmortems/{postmortem_id}/todoactions/{action_id}": {
            "get": {
                "description": "get incident postmortem todo action",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "GetIncidentPostMortemToDoAction",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "postmortem id",
                        "name": "postmortem_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "action id",
                        "name": "action_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.GetIncidentPostMortemToDoActionResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "post": {
                "description": "update incident postmortem todo action",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "UpdateIncidentPostMortemToDoAction",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "postmortem id",
                        "name": "postmortem_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "action id",
                        "name": "action_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "UpdateIncidentPostMortemToDoActionReq",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/incident.UpdateIncidentPostMortemToDoActionReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.UpdateIncidentPostMortemToDoActionResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "delete": {
                "description": "delete incident postmortem todo action",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "IncidentService"
                ],
                "operationId": "DeleteIncidentPostMortemToDoAction",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "incident id",
                        "name": "incident_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "postmortem id",
                        "name": "postmortem_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "action id",
                        "name": "action_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/incident.DeleteIncidentPostMortemToDoActionResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/jump-admin/invite-user": {
            "post": {
                "description": "init a user",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "JumpController"
                ],
                "operationId": "JumpControllerInviteUser",
                "parameters": [
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/jump.InviteUserReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/jump.InviteUserResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/jump/authorizations": {
            "get": {
                "description": "list authorizations",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "JumpController"
                ],
                "operationId": "JumpControllerListAuthorizations",
                "parameters": [
                    {
                        "type": "string",
                        "name": "applicant",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "cluster_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "initialized",
                            "approving",
                            "creating",
                            "created",
                            "expired",
                            "notapproved",
                            "creationfailed",
                            "canceled"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "AuthorizationPhaseInitialized",
                            "AuthorizationPhaseApproving",
                            "AuthorizationPhaseCreating",
                            "AuthorizationPhaseCreated",
                            "AuthorizationPhaseExpired",
                            "AuthorizationPhaseNotApproved",
                            "AuthorizationPhaseCreationFailed",
                            "AuthorizationPhaseCanceled"
                        ],
                        "name": "phase",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "name": "show_unaccessible",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "type",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/jump.ListAuthorizationsResp"
                        }
                    }
                }
            },
            "post": {
                "description": "create an authorization",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "JumpController"
                ],
                "operationId": "JumpControllerCreateInstance",
                "parameters": [
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/jump.CreateAuthorizationReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/jump.CreateAuthorizationResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/jump/authorizations/controlplane_options": {
            "get": {
                "description": "get available options for control planejumps",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "JumpController"
                ],
                "operationId": "JumpControllerGetControlPlaneOptions",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/jump.GetControlPlaneOptionsResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/jump/authorizations/serverless_options": {
            "get": {
                "description": "get available options for serverless jumps",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "JumpController"
                ],
                "operationId": "JumpControllerGetServerlessOptions",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/jump.GetServerlessOptionsResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/jump/authorizations/{authorization_id}": {
            "get": {
                "description": "get an authorization",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "JumpController"
                ],
                "operationId": "JumpControllerGetAuthorization",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "authorization name",
                        "name": "authorization_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/jump.GetAuthorizationResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/jump/authorizations/{authorization_id}/cancel": {
            "post": {
                "description": "cancel an authorization",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "JumpController"
                ],
                "operationId": "JumpControllerCancelAuthorization",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "authorization id",
                        "name": "authorization_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/jump/authorizations/{authorization_id}/jumppod_param": {
            "get": {
                "description": "get connect jump pod params",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "JumpController"
                ],
                "operationId": "JumpControllerGetConnectJumpPodParams",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "authorization id",
                        "name": "authorization_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/jump.GetConnectJumpPodParamsResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/jump/jumpserver/users/activate": {
            "post": {
                "description": "activate the applicant in the jump server.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "JumpController"
                ],
                "operationId": "JumpControllerActivateUserOfApplicant",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/jump/jumpserver/users/me": {
            "get": {
                "description": "get the applicant from the jump server.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "JumpController"
                ],
                "operationId": "JumpControllerGetUserOfApplicant",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/jump.GetUserResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/me": {
            "get": {
                "description": "get current user profile",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserService"
                ],
                "operationId": "CurrentUserProfile",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/user.UserProfileResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/operation/actions": {
            "get": {
                "description": "list actions",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "OperationController"
                ],
                "operationId": "OperationControllerListActions",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/operation.ListActionResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/operation/actions/{action_name}": {
            "get": {
                "description": "get a action",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "OperationController"
                ],
                "operationId": "OperationControllerGetAction",
                "parameters": [
                    {
                        "type": "string",
                        "description": "action name",
                        "name": "action_name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/operation.GetActionResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/operation/instances": {
            "get": {
                "description": "list instances",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "OperationController"
                ],
                "operationId": "OperationControllerListInstances",
                "parameters": [
                    {
                        "type": "string",
                        "name": "applicant",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "cluster_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "operation",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "created",
                            "approving",
                            "withdrawn",
                            "pending",
                            "running",
                            "succeeded",
                            "failed",
                            "canceled"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "InstancePhaseCreated",
                            "InstancePhaseApproving",
                            "InstancePhaseWithdrawn",
                            "InstancePhasePending",
                            "InstancePhaseRunning",
                            "InstancePhaseSucceeded",
                            "InstancePhaseFailed",
                            "InstancePhaseCanceled"
                        ],
                        "name": "phase",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "tenant_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "type",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/operation.ListInstanceResp"
                        }
                    }
                }
            },
            "post": {
                "description": "create a instance",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "OperationController"
                ],
                "operationId": "OperationControllerCreateInstance",
                "parameters": [
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/operation.CreateInstanceReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/operation.CreateInstanceResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/operation/instances/{instance_id}": {
            "get": {
                "description": "get a instance",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "OperationController"
                ],
                "operationId": "OperationControllerGetInstance",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "instance id",
                        "name": "instance_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/operation.GetInstanceResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/operation/instances/{instance_id}/actions/{action_order}/finish": {
            "post": {
                "description": "finish a instance action",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "OperationController"
                ],
                "operationId": "OperationControllerFinishInstanceAction",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "instance id",
                        "name": "instance_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "instance action order",
                        "name": "action_order",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/operation.FinishInstanceActionReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/operation/instances/{instance_id}/actions/{action_order}/start": {
            "post": {
                "description": "start a instance action maunally",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "OperationController"
                ],
                "operationId": "OperationControllerStartInstanceAction",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "instance id",
                        "name": "instance_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "instance action order",
                        "name": "action_order",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/operation/instances/{instance_id}/cancel": {
            "post": {
                "description": "cancel a instance",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "OperationController"
                ],
                "operationId": "OperationControllerCancelInstance",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "instance id",
                        "name": "instance_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/operation/operations": {
            "get": {
                "description": "list operations",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "OperationController"
                ],
                "operationId": "OperationControllerListOperations",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "filter by categories",
                        "name": "categories",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "cluster",
                            "tenant",
                            "undefined"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "OperationTargetCluster",
                            "OperationTargetTenant",
                            "OperationTargetUndefined"
                        ],
                        "description": "filter by target",
                        "name": "target",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/operation.ListOperationResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/operation/operations/categories": {
            "get": {
                "description": "list operation categories",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "OperationController"
                ],
                "operationId": "OperationControllerListOperationCategories",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/operation.ListOperationCategoryResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/operation/operations/{operation_name}": {
            "get": {
                "description": "get a operation",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "OperationController"
                ],
                "operationId": "OperationControllerGetOperation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "operation name",
                        "name": "operation_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "cluster id",
                        "name": "cluster_id",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "inject param into operation",
                        "name": "inject_param",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "tenant id",
                        "name": "tenant_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/operation.GetOperationResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/release/changes": {
            "post": {
                "description": "create a new change",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerCreateChange",
                "parameters": [
                    {
                        "description": "request body",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/release.CreateChangeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/release.CreateChangeResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/release/changes/default": {
            "get": {
                "description": "get a default change",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerDefaultChange",
                "parameters": [
                    {
                        "type": "string",
                        "name": "application_name",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "release_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/release.DefaultChangeResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/release/changes/{change_id}": {
            "get": {
                "description": "get a change",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerGetChange",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "change id",
                        "name": "change_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "name": "with_applicant",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "name": "with_application",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "name": "with_change_items",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "name": "with_detail",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "name": "with_release",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "FIXME: remove this hack, required by FE now.",
                        "name": "with_tickets",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/release.GetChangeResp"
                        }
                    }
                }
            },
            "put": {
                "description": "update a change",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerUpdateChange",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "change id",
                        "name": "change_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "request body",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/release.UpdateChangeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/release/changes/{change_id}/cancel": {
            "post": {
                "description": "cancel a change",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerCancelChange",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "change id",
                        "name": "change_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/release/changes/{change_id}/close": {
            "post": {
                "description": "close a change",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerCloseChange",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "change id",
                        "name": "change_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "request body",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/release.CloseChangeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/release/changes/{change_id}/deployments/{deployment_order}/deploy": {
            "post": {
                "description": "exeuete a deployment of a change",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerExecuteDeployment",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "change id",
                        "name": "change_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "deployment id",
                        "name": "deployment_order",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "request body",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/release.ExecuteDeploymentReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/release/changes/{change_id}/deployments/{deployment_order}/ready": {
            "get": {
                "description": "return if a deployment of a change is ready to execute",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerIsDeploymentReady",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "change id",
                        "name": "change_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "deployment id",
                        "name": "deployment_order",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/release.IsDeploymentReadyResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/release/changes/{change_id}/deployments/{deployment_order}/verify": {
            "post": {
                "description": "verify a deployment of a change",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerVerifyDeployment",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "change id",
                        "name": "change_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "deployment id",
                        "name": "deployment_order",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "request body",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/release.VerifyDeploymentReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/release/changes/{change_id}/submit": {
            "post": {
                "description": "submit a change",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerSubmitChange",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "change id",
                        "name": "change_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/release/releases": {
            "get": {
                "description": "list releases",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerListReleases",
                "parameters": [
                    {
                        "type": "string",
                        "name": "name",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "timestamp",
                        "name": "release_after",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "timestamp",
                        "name": "release_before",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/release.ListReleaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/release/releases/{release_id}": {
            "get": {
                "description": "get a release",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerGetRelease",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "release id",
                        "name": "release_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "name": "with_tickets",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/release.GetReleaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/release/releases/{release_id}/changes": {
            "get": {
                "description": "list all change of a release",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerListChangesOfRelease",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "release id",
                        "name": "release_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/release.ListChangeResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/release/tickets": {
            "get": {
                "description": "list tickets",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerListTickets",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "name",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "release",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "status",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/release.ListTicketsResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/release/tickets/{ticket_name}": {
            "get": {
                "description": "get a ticket",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerGetTicket",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ticket name",
                        "name": "ticket_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "name": "with_github_pr",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/release.GetTicketResp"
                        }
                    }
                }
            },
            "put": {
                "description": "update a ticket",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ReleaseController"
                ],
                "operationId": "ReleaseControllerUpdateTicket",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ticket name",
                        "name": "ticket_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "request body",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/release.UpdateTicketReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/roles": {
            "get": {
                "description": "list roles",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "RbacService"
                ],
                "operationId": "ListRoles",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/rbac.ListRolesResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "post": {
                "description": "create role",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "RbacService"
                ],
                "operationId": "CreateRole",
                "parameters": [
                    {
                        "description": "request",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/rbac.CreateRoleReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.EmptyResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/roles/{role_id}": {
            "get": {
                "description": "get role by id",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "RbacService"
                ],
                "operationId": "GetRole",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "role id",
                        "name": "role_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/rbac.GetRoleResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "put": {
                "description": "update role",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "RbacService"
                ],
                "operationId": "UpdateRole",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "role id",
                        "name": "role_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "request",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/rbac.UpdateRoleReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.EmptyResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "delete": {
                "description": "delete role",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "RbacService"
                ],
                "operationId": "DeleteRole",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "role id",
                        "name": "role_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.EmptyResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/secondaryconfirm/apply": {
            "post": {
                "description": "Apply a Secondary Confirm",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "SecondaryConfirmService"
                ],
                "operationId": "ApplySecondaryConfirm",
                "parameters": [
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/secondaryconfirm.ApplyReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/secondaryconfirm/diff": {
            "get": {
                "description": "Get Secondary-Confirm Diff Info",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "SecondaryConfirmService"
                ],
                "operationId": "GetSecondaryConfirmDiff",
                "parameters": [
                    {
                        "type": "string",
                        "name": "cluster_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "config_revision_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "project_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/secondaryconfirm.DiffResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/secondaryconfirm/list": {
            "get": {
                "description": "List Secondary Confirms",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "SecondaryConfirmService"
                ],
                "operationId": "ListSecondaryConfirms",
                "parameters": [
                    {
                        "type": "string",
                        "name": "cluster_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/secondaryconfirm.ListResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/tenants": {
            "get": {
                "description": "list tenants",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenantService"
                ],
                "operationId": "ListTenants",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "internal",
                                "external"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "kind",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "asc",
                            "desc"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "OrderTypeASC",
                            "OrderTypeDESC"
                        ],
                        "name": "order",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "new_user",
                                "free_trial",
                                "poc",
                                "on_demand"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "plan",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "APAC",
                                "EMEA",
                                "JAPAN",
                                "NA",
                                "UNKNOWN"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "region",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "search",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "SKA",
                                "KA",
                                "SMB"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "segmentation",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "created_at",
                            "timezone"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "SortByTypeCreatedAt",
                            "SortByTypeTimezone"
                        ],
                        "name": "sort_by",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "pending",
                                "active",
                                "inactive",
                                "deleted",
                                "cleared"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "status",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/tenant.ListTenantResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/tenants/impersonate": {
            "get": {
                "description": "get impersonate",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenantService"
                ],
                "operationId": "GetImpersonate",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/tenant.GetImpersonateResp"
                        }
                    }
                }
            },
            "post": {
                "description": "add impersonate",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenantService"
                ],
                "operationId": "AddImpersonate",
                "parameters": [
                    {
                        "description": "ImpersonateReq",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/tenant.AddImpersonateReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/tenant.AddImpersonateResp"
                        }
                    }
                }
            },
            "delete": {
                "description": "delete impersonate",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenantService"
                ],
                "operationId": "DeleteImpersonate",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/tenants/{tenant_id}": {
            "get": {
                "description": "get tenant",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenantService"
                ],
                "operationId": "GetTenant",
                "parameters": [
                    {
                        "type": "string",
                        "description": "tenant_id",
                        "name": "tenant_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/tenant.GetTenantResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "delete": {
                "description": "delete tenant",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenantService"
                ],
                "operationId": "DeleteTenant",
                "parameters": [
                    {
                        "type": "string",
                        "description": "tenant_id",
                        "name": "tenant_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.EmptyResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/user/groups": {
            "get": {
                "description": "list user groups",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserService"
                ],
                "operationId": "UserControllerListGroups",
                "parameters": [
                    {
                        "type": "string",
                        "name": "name_like",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "user_have",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/user.ListGroupsResp"
                        }
                    }
                }
            },
            "post": {
                "description": "create a user group",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserService"
                ],
                "operationId": "UserControllerCreateGroup",
                "parameters": [
                    {
                        "description": "request",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/user.CreateGroupReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/user/groups/{group_name}": {
            "get": {
                "description": "get a user group",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserService"
                ],
                "operationId": "UserControllerGetGroup",
                "parameters": [
                    {
                        "type": "string",
                        "description": "group name",
                        "name": "group_name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/user.GetGroupResp"
                        }
                    }
                }
            },
            "put": {
                "description": "update a user group",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserService"
                ],
                "operationId": "UserControllerUpdateGroup",
                "parameters": [
                    {
                        "type": "string",
                        "description": "group name",
                        "name": "group_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "request",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/user.UpdateGroupReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "delete": {
                "description": "delete a user group",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserService"
                ],
                "operationId": "UserControllerDeleteGroup",
                "parameters": [
                    {
                        "type": "string",
                        "description": "group name",
                        "name": "group_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "request",
                        "name": "req",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/user.DeleteGroupReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/user/user-group-mappings": {
            "post": {
                "description": "map users to a group",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserService"
                ],
                "operationId": "UserControllerMapUsersToGroup",
                "parameters": [
                    {
                        "description": "request",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/user.MapUsersToGroupReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "delete": {
                "description": "unmap users to a group",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserService"
                ],
                "operationId": "UserControllerUnmapUsersFromGroup",
                "parameters": [
                    {
                        "description": "request",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/user.UnmapUsersFromGroupReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/userbehavior/subscriptions": {
            "get": {
                "description": "list subscriptions",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserBehaviorController"
                ],
                "operationId": "UserBehaviorControllerListSubscriptions",
                "parameters": [
                    {
                        "type": "string",
                        "name": "applicant",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "cluster_id",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "name": "filter_by_creator",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "name": "show_unaccessible",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "type",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/userbehavior.ListSubscriptionsResp"
                        }
                    }
                }
            },
            "post": {
                "description": "create an subscription",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserBehaviorController"
                ],
                "operationId": "UserBehaviorControllerCreateSubscription",
                "parameters": [
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/userbehavior.CreateSubscriptionReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/userbehavior.CreateSubscriptionResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/userbehavior/subscriptions/add_chat": {
            "post": {
                "description": "add an external lark chat to lark chat list",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserBehaviorController"
                ],
                "operationId": "UserBehaviorControllerAddExternalLarkChat",
                "parameters": [
                    {
                        "description": "request param",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/userbehavior.AddExternalLarkChatReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/userbehavior/subscriptions/larkchat_options": {
            "get": {
                "description": "get lark chat options",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserBehaviorController"
                ],
                "operationId": "UserBehaviorControllerGetLarkChatOptions",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/userbehavior.ListLarkChatOptionsResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/userbehavior/subscriptions/{subscription_id}": {
            "get": {
                "description": "get an subscription",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserBehaviorController"
                ],
                "operationId": "UserBehaviorControllerGetSubscription",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "subscription name",
                        "name": "subscription_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/userbehavior.GetSubscriptionResp"
                        }
                    }
                }
            },
            "put": {
                "description": "edit subscription",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserBehaviorService"
                ],
                "operationId": "UserBehaviorControllerEditSubscription",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "subscription id",
                        "name": "subscription_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "request",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/userbehavior.EditSubscriptionReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/userbehavior.EditSubscriptionResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/userbehavior/subscriptions/{subscription_id}/cancel": {
            "post": {
                "description": "cancel an subscription",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserBehaviorController"
                ],
                "operationId": "UserBehaviorControllerCancelSubscription",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "subscription id",
                        "name": "subscription_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/userbehavior/subscriptions/{subscription_id}/mock": {
            "post": {
                "description": "send a mock event to subscription",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserBehaviorController"
                ],
                "operationId": "UserBehaviorControllerSendMockEvent",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "subscription name",
                        "name": "subscription_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/users": {
            "get": {
                "description": "list users",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserService"
                ],
                "operationId": "ListUsers",
                "parameters": [
                    {
                        "type": "string",
                        "name": "email",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "group_is",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "name": "include_unavailable",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "per_page",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/user.ListUserResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/users/detail": {
            "get": {
                "description": "get user by email",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserService"
                ],
                "operationId": "GetUser",
                "parameters": [
                    {
                        "type": "string",
                        "description": "email",
                        "name": "email",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/user.GetUserResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/users/roles": {
            "put": {
                "description": "update user role bindings",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserService"
                ],
                "operationId": "UpdateUserRoleBindings",
                "parameters": [
                    {
                        "description": "UpdateUserRoleBindingsReq",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/user.UpdateUserRoleBindingsReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.EmptyResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v1/devops/users/sync": {
            "post": {
                "description": "sync users manually",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserService"
                ],
                "operationId": "SyncUsersManually",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.EmptyResp"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "api.BaseResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "api.EmptyResp": {
            "type": "object"
        },
        "api.ErrCode": {
            "type": "string",
            "enum": [
                "OK",
                "INVALID_ARGUMENT",
                "FAILED_PRECONDITION",
                "OUT_OF_RANGE",
                "UNAUTHENTICATED",
                "PERMISSION_DENIED",
                "NOT_FOUND",
                "ABORTED",
                "ALREADY_EXISTS",
                "RESOURCE_EXHAUSTED",
                "CANCELLED",
                "DATA_LOSS",
                "UNKNOWN",
                "INTERNAL",
                "NOT_IMPLEMENTED",
                "UNAVAILABLE",
                "DEADLINE_EXCEEDED"
            ],
            "x-enum-varnames": [
                "ErrCodeOK",
                "ErrCodeInvalidArgument",
                "ErrCodeFailedPrecond",
                "ErrCodeOutOfRange",
                "ErrCodeUnauthenticated",
                "ErrCodePermissionDenied",
                "ErrCodeNotFound",
                "ErrCodeAborted",
                "ErrCodeAlreadyExists",
                "ErrCodeResourceExhaust",
                "ErrCodeCancelled",
                "ErrCodeDataLoss",
                "ErrCodeUnknown",
                "ErrCodeInternal",
                "ErrCodeNotImplemented",
                "ErrCodeUnavailable",
                "ErrCodeDeadlineExceeded"
            ]
        },
        "approval.GetApprovalResp": {
            "type": "object",
            "properties": {
                "approval": {
                    "$ref": "#/definitions/entity.Approval"
                },
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "audit.AuditLogType": {
            "type": "string",
            "enum": [
                "change",
                "ctl",
                "gitops_secondary_confirm",
                "cluster_maintenance",
                "operation",
                "jump",
                "cloud_config_change"
            ],
            "x-enum-varnames": [
                "AuditLogTypeChange",
                "AuditLogTypeCtl",
                "AuditLogTypeSecondary",
                "AuditLogTypeClusterMaintenance",
                "AuditLogTypeOperation",
                "AuditLogTypeJump",
                "AuditLogTypeCloudConfigChange"
            ]
        },
        "audit.ListAuditLogResp": {
            "type": "object",
            "properties": {
                "audit_logs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_audit.AuditLog"
                    }
                },
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "audit.ListChangeAuditLogResp": {
            "type": "object",
            "properties": {
                "audit_logs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_audit.AuditLog"
                    }
                },
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "audit.ListClusterMaintenanceAuditLogResp": {
            "type": "object",
            "properties": {
                "audit_logs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_audit.AuditLog"
                    }
                },
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "audit.ListCtlAuditLogResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_audit.AuditLog"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "audit.ListJumpAuditLogResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_audit.AuditLog"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "audit.ListOperationAuditLogResp": {
            "type": "object",
            "properties": {
                "audit_logs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_audit.AuditLog"
                    }
                },
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.ApplyConfigurationChangeReq": {
            "type": "object",
            "properties": {
                "mode": {
                    "$ref": "#/definitions/cloudconfig.ApplyMode"
                }
            }
        },
        "cloudconfig.ApplyMode": {
            "type": "object",
            "properties": {
                "allow_methods": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "deny_methods": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "cloudconfig.ChangeComponentReq": {
            "type": "object",
            "properties": {
                "component": {
                    "type": "string"
                },
                "overwrite_image_tag": {
                    "$ref": "#/definitions/cloudconfig.ChangeImageTagReq"
                }
            }
        },
        "cloudconfig.ChangeFileReq": {
            "type": "object",
            "properties": {
                "config_type": {
                    "type": "string"
                },
                "custom_parameters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/cloudconfig.NamedParameter"
                    }
                },
                "filename": {
                    "type": "string"
                },
                "previous_text": {
                    "type": "string"
                },
                "template": {
                    "$ref": "#/definitions/cloudconfig.ChangeTemplateReq"
                }
            }
        },
        "cloudconfig.ChangeImageTagReq": {
            "type": "object",
            "properties": {
                "to_image_tag": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.ChangeTemplateReq": {
            "type": "object",
            "properties": {
                "to_template": {
                    "type": "integer"
                }
            }
        },
        "cloudconfig.ChangeVersionReq": {
            "type": "object",
            "properties": {
                "to_version": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.ChangedImageTag": {
            "type": "object",
            "properties": {
                "from": {
                    "type": "string"
                },
                "to": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.ChangedParameter": {
            "type": "object",
            "properties": {
                "from": {},
                "from_source": {
                    "$ref": "#/definitions/cloudconfig.ParameterSource"
                },
                "name": {
                    "type": "string"
                },
                "to": {},
                "to_source": {
                    "$ref": "#/definitions/cloudconfig.ParameterSource"
                }
            }
        },
        "cloudconfig.ChangedTemplate": {
            "type": "object",
            "properties": {
                "from": {
                    "type": "integer"
                },
                "to": {
                    "type": "integer"
                }
            }
        },
        "cloudconfig.CloneParamAttrReq": {
            "type": "object",
            "required": [
                "from_version",
                "to_version"
            ],
            "properties": {
                "from_version": {
                    "type": "string"
                },
                "to_version": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.CloudInstanceType": {
            "type": "object",
            "properties": {
                "cloud_provider": {
                    "type": "string"
                },
                "instance_type": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.ClusterType": {
            "type": "string",
            "enum": [
                "",
                "DEDICATED_TIDB",
                "TICDC",
                "TIPROXY"
            ],
            "x-enum-varnames": [
                "ClusterTypeUnknown",
                "ClusterTypeDedicatedTiDB",
                "ClusterTypeTiCDC",
                "ClusterTypeTiProxy"
            ]
        },
        "cloudconfig.Component": {
            "type": "object",
            "properties": {
                "base_image": {
                    "type": "string"
                },
                "cloud_provider": {
                    "type": "string"
                },
                "effective_image_tag": {
                    "type": "string"
                },
                "instance_type": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "overwrite_image_tag": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.Configuration": {
            "type": "object",
            "properties": {
                "components": {
                    "description": "key: component name",
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/cloudconfig.Component"
                    }
                },
                "files": {
                    "description": "key: filename",
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/cloudconfig.FileConfiguration"
                    }
                },
                "target_cluster": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_cloudconfig.ClusterConfigurationLocator"
                },
                "target_tenant": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_cloudconfig.TenantInitConfigurationLocator"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.ConfigurationChangePhase": {
            "type": "string",
            "enum": [
                "created",
                "approving",
                "wait_for_apply",
                "applied",
                "cancelled",
                "withdrawn"
            ],
            "x-enum-varnames": [
                "ConfigurationChangePhaseCreated",
                "ConfigurationChangePhaseApproving",
                "ConfigurationChangePhaseWaitForApply",
                "ConfigurationChangePhaseApplied",
                "ConfigurationChangePhaseCancelled",
                "ConfigurationChangePhaseWithdrawn"
            ]
        },
        "cloudconfig.ConfigurationChangeScope": {
            "type": "object",
            "properties": {
                "components": {
                    "description": "Components contains changes for components\nNOTE: not contain the unchanged components.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_cloudconfig.ConfigurationComponentChange"
                    }
                },
                "files": {
                    "description": "Files contains changes for configuration files.\nNOTE: not contain the unchanged files.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_cloudconfig.ConfigurationFileChange"
                    }
                },
                "version": {
                    "description": "Version means the change for cluster version",
                    "allOf": [
                        {
                            "$ref": "#/definitions/github_com_tidbcloud_devops_entity_cloudconfig.ConfigurationVersionChange"
                        }
                    ]
                }
            }
        },
        "cloudconfig.ConfigurationChangeTargetType": {
            "type": "string",
            "enum": [
                "cluster",
                "tenant_init"
            ],
            "x-enum-varnames": [
                "ConfigurationChangeTargetTypeCluster",
                "ConfigurationChangeTargetTypeTenantInit"
            ]
        },
        "cloudconfig.ConfigurationChangeable": {
            "type": "object",
            "properties": {
                "changeable": {
                    "type": "boolean"
                },
                "reason": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.ConfigurationTemplate": {
            "type": "object",
            "properties": {
                "cluster_type": {
                    "$ref": "#/definitions/cloudconfig.ClusterType"
                },
                "filename": {
                    "type": "string"
                },
                "id": {
                    "description": "id in the config center",
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "parameters": {
                    "description": "key: parameter name",
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/cloudconfig.NamedParameter"
                    }
                }
            }
        },
        "cloudconfig.ConfigurationTemplateDefaultFor": {
            "type": "object",
            "properties": {
                "cloud_provider": {
                    "type": "string"
                },
                "cluster_version": {
                    "type": "string"
                },
                "node_instance": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.ConfigurationTemplateUsage": {
            "type": "object",
            "properties": {
                "cluster_id": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "default_for": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/cloudconfig.ConfigurationTemplateDefaultFor"
                    }
                }
            }
        },
        "cloudconfig.CreateClusterConfigurationChangeReq": {
            "type": "object",
            "required": [
                "cluster_id",
                "cluster_type"
            ],
            "properties": {
                "apply_policy": {
                    "$ref": "#/definitions/cloudconfig.ParameterApplyPolicy"
                },
                "cluster_id": {
                    "type": "string"
                },
                "cluster_type": {
                    "$ref": "#/definitions/cloudconfig.ClusterType"
                },
                "components": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/cloudconfig.ChangeComponentReq"
                    }
                },
                "files": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/cloudconfig.ChangeFileReq"
                    }
                },
                "reason": {
                    "type": "string"
                },
                "version": {
                    "$ref": "#/definitions/cloudconfig.ChangeVersionReq"
                }
            }
        },
        "cloudconfig.CreateConfigurationChangeResp": {
            "type": "object",
            "properties": {
                "change_id": {
                    "type": "integer"
                },
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.CreateParamAttrReq": {
            "type": "object",
            "required": [
                "attribute"
            ],
            "properties": {
                "attribute": {
                    "$ref": "#/definitions/cloudconfig.ParameterAttribute"
                }
            }
        },
        "cloudconfig.CreateTenantInitConfigurationChangeReq": {
            "type": "object",
            "required": [
                "cluster_type",
                "tenant_id"
            ],
            "properties": {
                "apply_policy": {
                    "$ref": "#/definitions/cloudconfig.ParameterApplyPolicy"
                },
                "cluster_type": {
                    "$ref": "#/definitions/cloudconfig.ClusterType"
                },
                "components": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/cloudconfig.ChangeComponentReq"
                    }
                },
                "files": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/cloudconfig.ChangeFileReq"
                    }
                },
                "reason": {
                    "type": "string"
                },
                "tenant_id": {
                    "type": "string"
                },
                "version": {
                    "$ref": "#/definitions/cloudconfig.ChangeVersionReq"
                }
            }
        },
        "cloudconfig.FileConfiguration": {
            "type": "object",
            "properties": {
                "all_parameters": {
                    "description": "key: parameter name",
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/cloudconfig.UnifiedParameter"
                    }
                },
                "belong_to_component": {
                    "type": "string"
                },
                "config_type": {
                    "type": "string"
                },
                "filename": {
                    "type": "string"
                },
                "format": {
                    "type": "string"
                },
                "template_id": {
                    "type": "integer"
                },
                "text": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.GetConfigTemplateResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "template": {
                    "$ref": "#/definitions/cloudconfig.ConfigurationTemplate"
                },
                "trace_id": {
                    "type": "string"
                },
                "usage": {
                    "$ref": "#/definitions/cloudconfig.ConfigurationTemplateUsage"
                }
            }
        },
        "cloudconfig.GetConfigurationChangeResp": {
            "type": "object",
            "properties": {
                "change": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_cloudconfig.ConfigurationChange"
                },
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.GetConfigurationResp": {
            "type": "object",
            "properties": {
                "changeable": {
                    "$ref": "#/definitions/cloudconfig.ConfigurationChangeable"
                },
                "configuration": {
                    "$ref": "#/definitions/cloudconfig.Configuration"
                },
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.GetParamAttrResp": {
            "type": "object",
            "properties": {
                "attribute": {
                    "$ref": "#/definitions/cloudconfig.ParameterAttribute"
                },
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.ListConfigTemplatesResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/cloudconfig.ConfigurationTemplate"
                    }
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.ListConfigTypesResp": {
            "type": "object",
            "properties": {
                "config_types": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "cloudconfig.ListConfigurationChangeResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_cloudconfig.ConfigurationChange"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.ListInstanceTypesResp": {
            "type": "object",
            "properties": {
                "instance_types": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/cloudconfig.CloudInstanceType"
                    }
                }
            }
        },
        "cloudconfig.ListParamAttrResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/cloudconfig.ParameterAttribute"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.ListVersionsResp": {
            "type": "object",
            "properties": {
                "versions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "cloudconfig.NamedParameter": {
            "type": "object",
            "properties": {
                "comment": {
                    "description": "Comment is the comment of this parameter",
                    "type": "string"
                },
                "name": {
                    "description": "Name is the name of this parameter",
                    "type": "string"
                },
                "value": {
                    "description": "Value is the value of this parameter"
                }
            }
        },
        "cloudconfig.ParameterApplyPolicy": {
            "type": "string",
            "enum": [
                "None",
                "HotReload",
                "RollingRestart"
            ],
            "x-enum-varnames": [
                "ParameterApplyPolicyNone",
                "ParameterApplyPolicyHotReload",
                "ParameterApplyPolicyRestart"
            ]
        },
        "cloudconfig.ParameterAttribute": {
            "type": "object",
            "properties": {
                "apply_policy": {
                    "$ref": "#/definitions/cloudconfig.ParameterApplyPolicy"
                },
                "config_type": {
                    "type": "string"
                },
                "default_value": {},
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.ParameterSource": {
            "type": "string",
            "enum": [
                "custom",
                "template",
                "kernel default"
            ],
            "x-enum-varnames": [
                "ParameterCustom",
                "ParameterTemplate",
                "ParameterKernelDefault"
            ]
        },
        "cloudconfig.ParameterValue": {
            "type": "object",
            "properties": {
                "comment": {
                    "description": "Comment is the comment of this parameter",
                    "type": "string"
                },
                "value": {
                    "description": "Value is the value of this parameter"
                }
            }
        },
        "cloudconfig.PreviewClusterConfigurationChangeReq": {
            "type": "object",
            "required": [
                "cluster_id",
                "cluster_type"
            ],
            "properties": {
                "cluster_id": {
                    "type": "string"
                },
                "cluster_type": {
                    "$ref": "#/definitions/cloudconfig.ClusterType"
                },
                "components": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/cloudconfig.ChangeComponentReq"
                    }
                },
                "files": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/cloudconfig.ChangeFileReq"
                    }
                },
                "version": {
                    "$ref": "#/definitions/cloudconfig.ChangeVersionReq"
                }
            }
        },
        "cloudconfig.PreviewConfigurationChangeResp": {
            "type": "object",
            "properties": {
                "apply_policy": {
                    "$ref": "#/definitions/cloudconfig.ParameterApplyPolicy"
                },
                "change": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_cloudconfig.ConfigurationChange"
                },
                "configuration": {
                    "$ref": "#/definitions/cloudconfig.Configuration"
                },
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "reasons": {
                    "type": "string"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "cloudconfig.PreviewTenantInitConfigurationChangeReq": {
            "type": "object",
            "required": [
                "cluster_type",
                "tenant_id"
            ],
            "properties": {
                "cluster_type": {
                    "$ref": "#/definitions/cloudconfig.ClusterType"
                },
                "components": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/cloudconfig.ChangeComponentReq"
                    }
                },
                "files": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/cloudconfig.ChangeFileReq"
                    }
                },
                "tenant_id": {
                    "type": "string"
                },
                "version": {
                    "$ref": "#/definitions/cloudconfig.ChangeVersionReq"
                }
            }
        },
        "cloudconfig.UnifiedParameter": {
            "type": "object",
            "properties": {
                "attribute": {
                    "description": "Attribute is the attribute of this config\nIt may be nil if the parameter is not defined in the param dict.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/cloudconfig.ParameterAttribute"
                        }
                    ]
                },
                "comment": {
                    "description": "Comment is the comment of this parameter",
                    "type": "string"
                },
                "custom": {
                    "description": "Custom is the custom config value",
                    "allOf": [
                        {
                            "$ref": "#/definitions/cloudconfig.ParameterValue"
                        }
                    ]
                },
                "name": {
                    "description": "Name is the name of this parameter",
                    "type": "string"
                },
                "source": {
                    "description": "Source is the value source of this parameter",
                    "allOf": [
                        {
                            "$ref": "#/definitions/cloudconfig.ParameterSource"
                        }
                    ]
                },
                "template": {
                    "description": "Template is the template config value",
                    "allOf": [
                        {
                            "$ref": "#/definitions/cloudconfig.ParameterValue"
                        }
                    ]
                },
                "value": {
                    "description": "Value is the value of this parameter"
                }
            }
        },
        "cloudconfig.UpdateParamAttrReq": {
            "type": "object",
            "properties": {
                "apply_policy": {
                    "$ref": "#/definitions/cloudconfig.ParameterApplyPolicy"
                },
                "default_value": {}
            }
        },
        "cloudconfig.UsedParameter": {
            "type": "object",
            "properties": {
                "comment": {
                    "description": "Comment is the comment of this parameter",
                    "type": "string"
                },
                "name": {
                    "description": "Name is the name of this parameter",
                    "type": "string"
                },
                "source": {
                    "description": "Source is the value source of this parameter",
                    "allOf": [
                        {
                            "$ref": "#/definitions/cloudconfig.ParameterSource"
                        }
                    ]
                },
                "value": {
                    "description": "Value is the value of this parameter"
                }
            }
        },
        "cluster.Cluster": {
            "type": "object",
            "properties": {
                "cluster_components": {
                    "$ref": "#/definitions/cluster.ClusterComponent"
                },
                "create_time": {
                    "type": "integer"
                },
                "cross_account_deployment_id": {
                    "type": "integer"
                },
                "id": {
                    "type": "string",
                    "example": "0"
                },
                "is_dev_tier": {
                    "type": "boolean"
                },
                "is_new_arch": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "profile": {
                    "type": "string"
                },
                "project_id": {
                    "type": "string",
                    "example": "0"
                },
                "project_name": {
                    "type": "string"
                },
                "provider": {
                    "type": "string"
                },
                "region": {
                    "type": "string"
                },
                "serverless_details": {
                    "$ref": "#/definitions/cluster.ServerlessDetails"
                },
                "status": {
                    "type": "string"
                },
                "tenant_id": {
                    "type": "string",
                    "example": "0"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "cluster.ClusterComponent": {
            "type": "object",
            "properties": {
                "pd": {
                    "$ref": "#/definitions/cluster.Component"
                },
                "tidb": {
                    "$ref": "#/definitions/cluster.Component"
                },
                "tiflash": {
                    "$ref": "#/definitions/cluster.Component"
                },
                "tikv": {
                    "$ref": "#/definitions/cluster.Component"
                }
            }
        },
        "cluster.Component": {
            "type": "object",
            "properties": {
                "machineType": {
                    "description": "TODO(chenfei): remove. used by gitops to overlay configuration for component for now",
                    "type": "string"
                },
                "node_profile": {
                    "$ref": "#/definitions/cluster.NodeProfileOfComponent"
                },
                "replicas": {
                    "type": "integer"
                }
            }
        },
        "cluster.CreateMaintenanceReq": {
            "type": "object",
            "properties": {
                "cluster_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "deadline": {
                    "description": "unix",
                    "type": "integer"
                },
                "description": {
                    "type": "string"
                },
                "project_id": {
                    "type": "string"
                }
            }
        },
        "cluster.CreateMaintenanceResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "cluster.GetAlertSummaryResp": {
            "type": "object",
            "properties": {
                "trends": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/jira.SeriesTrend"
                    }
                }
            }
        },
        "cluster.GetClusterResp": {
            "type": "object",
            "properties": {
                "cluster_components": {
                    "$ref": "#/definitions/cluster.ClusterComponent"
                },
                "create_time": {
                    "type": "integer"
                },
                "cross_account_deployment_id": {
                    "type": "integer"
                },
                "id": {
                    "type": "string",
                    "example": "0"
                },
                "is_dev_tier": {
                    "type": "boolean"
                },
                "is_new_arch": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "profile": {
                    "type": "string"
                },
                "project_id": {
                    "type": "string",
                    "example": "0"
                },
                "project_name": {
                    "type": "string"
                },
                "provider": {
                    "type": "string"
                },
                "region": {
                    "type": "string"
                },
                "serverless_details": {
                    "$ref": "#/definitions/cluster.ServerlessDetails"
                },
                "status": {
                    "type": "string"
                },
                "tenant_id": {
                    "type": "string",
                    "example": "0"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "cluster.GetMaintenanceResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "maintenance": {
                    "$ref": "#/definitions/entity.ClusterMaintenance"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "cluster.ListAlertsResp": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/jira.Alert"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "cluster.ListClustersResp": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/cluster.Cluster"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "cluster.ListMaintenancesResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.ClusterMaintenance"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "cluster.NodeProfileCompute": {
            "type": "object",
            "properties": {
                "cpu": {
                    "type": "integer"
                },
                "memory_mi": {
                    "type": "integer"
                }
            }
        },
        "cluster.NodeProfileOfComponent": {
            "type": "object",
            "properties": {
                "compute": {
                    "$ref": "#/definitions/cluster.NodeProfileCompute"
                },
                "name": {
                    "type": "string"
                },
                "storage_gi": {
                    "type": "integer"
                }
            }
        },
        "cluster.ServerlessBranch": {
            "type": "object",
            "properties": {
                "create_time": {
                    "type": "integer"
                },
                "display_name": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "update_time": {
                    "type": "integer"
                }
            }
        },
        "cluster.ServerlessDetails": {
            "type": "object",
            "properties": {
                "branches": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/cluster.ServerlessBranch"
                    }
                },
                "column_storage": {
                    "type": "number"
                },
                "request_unit": {
                    "type": "integer"
                },
                "row_storage": {
                    "type": "number"
                }
            }
        },
        "configcenter.AddAttributeReq": {
            "type": "object",
            "properties": {
                "apply_policy": {
                    "$ref": "#/definitions/entity.ApplyStrategy"
                },
                "id": {
                    "type": "integer"
                },
                "param_name": {
                    "type": "string"
                },
                "version": {
                    "type": "integer"
                }
            }
        },
        "configcenter.CopyFromVersionReq": {
            "type": "object",
            "properties": {
                "from_version": {
                    "type": "string"
                },
                "to_version": {
                    "type": "string"
                }
            }
        },
        "configcenter.ListAttributesResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.ConfigAttributes"
                    }
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "configcenter.ModifyReq": {
            "type": "object",
            "properties": {
                "apply_policy": {
                    "$ref": "#/definitions/entity.ApplyStrategy"
                },
                "id": {
                    "type": "integer"
                },
                "param_name": {
                    "type": "string"
                },
                "version": {
                    "type": "integer"
                }
            }
        },
        "dashboard.CloudOncallInfoResp": {
            "type": "object",
            "properties": {
                "backlogTotal": {
                    "type": "integer"
                },
                "componentMonthlyTrend": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.SeriesMonthlyTrend"
                    }
                },
                "monthlyTrend": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.MonthlyTrend"
                    }
                },
                "priorityMonthlyTrends": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.SeriesMonthlyTrend"
                    }
                },
                "topTenants": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.TopTenant"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "ttrInDays": {
                    "type": "number"
                }
            }
        },
        "dashboard.CriticalAlertInfoResp": {
            "type": "object",
            "properties": {
                "alertMonthlyTrend": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.SeriesMonthlyTrend"
                    }
                },
                "backlogTotal": {
                    "type": "integer"
                },
                "majorAlertMonthlyTrend": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.SeriesMonthlyTrend"
                    }
                },
                "topTenants": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.TopTenant"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "ttrInDays": {
                    "type": "number"
                }
            }
        },
        "dashboard.GetTop10QPSTenantsResp": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.TopTenant"
                    }
                }
            }
        },
        "dashboard.GetTop10TiFlashStorageTenantsResp": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.TopTenant"
                    }
                }
            }
        },
        "dashboard.GetTop10TiKVStorageTenantsResp": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.TopTenant"
                    }
                }
            }
        },
        "dashboard.IncidentInfoResp": {
            "type": "object",
            "properties": {
                "mttrInMinutes": {
                    "type": "number"
                },
                "mttrMonthlyTrends": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.MonthlyTrend"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "dashboard.ReleaseInfoResp": {
            "type": "object",
            "properties": {
                "hotfixApplicationMonthlyTrends": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.SeriesMonthlyTrend"
                    }
                },
                "hotfixTotal": {
                    "type": "integer"
                },
                "sprintApplicationMonthlyTrends": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.SeriesMonthlyTrend"
                    }
                },
                "sprintTotal": {
                    "type": "integer"
                }
            }
        },
        "dashboard.SLAInfoResp": {
            "type": "object",
            "properties": {
                "dedicatedSLA": {
                    "$ref": "#/definitions/entity.SLA"
                },
                "serverlessSLA": {
                    "$ref": "#/definitions/entity.SLA"
                }
            }
        },
        "dashboard.SLOInfoResp": {
            "type": "object",
            "properties": {
                "currentSummary": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.ApplicationSLOSummary"
                    }
                }
            }
        },
        "entity.Application": {
            "type": "object",
            "properties": {
                "cdType": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "owners": {
                    "description": "User Email",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "slis": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.SLIMeta"
                    }
                }
            }
        },
        "entity.ApplicationSLOSummary": {
            "type": "object",
            "properties": {
                "application": {
                    "type": "string"
                },
                "slos": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.SLO"
                    }
                }
            }
        },
        "entity.ApplyStrategy": {
            "type": "string",
            "enum": [
                "HotReload",
                "RollingRestart",
                "ChangeCMOnly"
            ],
            "x-enum-varnames": [
                "Hotreload",
                "Restart",
                "ChangeCMOnly"
            ]
        },
        "entity.Approval": {
            "type": "object",
            "properties": {
                "applicant": {
                    "description": "Applicant is the user email who created the approval request.",
                    "type": "string"
                },
                "cc_tasks": {
                    "description": "CCTasks defines the users who will be notified when the approval request is **Approved**.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.ApprovalCCTask"
                    }
                },
                "detail_link": {
                    "description": "DetailLink is the link to the detail page for this request.\n\nIt is used in the notification message.",
                    "type": "string"
                },
                "end_at": {
                    "description": "EndAt is the time when the approval request is ended.",
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "name": {
                    "description": "Name is the name of the approval request used to categorize approvals.",
                    "type": "string"
                },
                "nodes": {
                    "description": "Nodes defines the approval workflow.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.ApprovalNode"
                    }
                },
                "parameters": {
                    "description": "Parameters is the parameters showed in the detail page.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "start_at": {
                    "description": "StartAt is the time when the approval request is created.",
                    "type": "integer"
                },
                "status": {
                    "description": "Status is the status of the approval request.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/entity.ApprovalStatus"
                        }
                    ]
                }
            }
        },
        "entity.ApprovalCCTask": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                },
                "user_email": {
                    "description": "email",
                    "type": "string"
                }
            }
        },
        "entity.ApprovalNode": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                },
                "method": {
                    "$ref": "#/definitions/entity.ApproveMethod"
                },
                "order": {
                    "description": "first is 0, must be equal to the index of slices.",
                    "type": "integer"
                },
                "status": {
                    "$ref": "#/definitions/entity.ApprovalNodeStatus"
                },
                "tasks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.ApprovalTask"
                    }
                }
            }
        },
        "entity.ApprovalNodeStatus": {
            "type": "string",
            "enum": [
                "PENDING",
                "APPROVED",
                "REJECTED",
                "CANCELED"
            ],
            "x-enum-varnames": [
                "ApprovalNodeStatusPending",
                "ApprovalNodeStatusApproved",
                "ApprovalNodeStatusRejected",
                "ApprovalNodeStatusCancelled"
            ]
        },
        "entity.ApprovalStatus": {
            "type": "string",
            "enum": [
                "PENDING",
                "APPROVED",
                "REJECTED",
                "CANCELED"
            ],
            "x-enum-varnames": [
                "ApprovalStatusPending",
                "ApprovalStatusApproved",
                "ApprovalStatusRejected",
                "ApprovalStatusCancelled"
            ]
        },
        "entity.ApprovalTask": {
            "type": "object",
            "properties": {
                "end_at": {
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "notify_lark_type": {
                    "$ref": "#/definitions/entity.LarkType"
                },
                "notify_message_id": {
                    "type": "string"
                },
                "start_at": {
                    "type": "integer"
                },
                "status": {
                    "$ref": "#/definitions/entity.ApprovalTaskStatus"
                },
                "user_email": {
                    "description": "email",
                    "type": "string"
                }
            }
        },
        "entity.ApprovalTaskStatus": {
            "type": "string",
            "enum": [
                "PENDING",
                "APPROVED",
                "REJECTED",
                "Done"
            ],
            "x-enum-varnames": [
                "ApprovalTaskStatusPending",
                "ApprovalTaskStatusApproved",
                "ApprovalTaskStatusRejected",
                "ApprovalTaskStatusDone"
            ]
        },
        "entity.ApproveMethod": {
            "type": "string",
            "enum": [
                "ALL",
                "ANY"
            ],
            "x-enum-varnames": [
                "ApproveMethodAll",
                "ApproveMethodAny"
            ]
        },
        "entity.ClusterMaintenance": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                },
                "instance_id": {
                    "description": "the id of MaintenanceTask in the core svc",
                    "type": "integer"
                },
                "lark_notified_at": {
                    "type": "string"
                },
                "task": {
                    "$ref": "#/definitions/entity.ClusterMaintenanceTask"
                }
            }
        },
        "entity.ClusterMaintenanceExecution": {
            "type": "object",
            "properties": {
                "cancel_reason": {
                    "type": "string"
                },
                "cluster_id": {
                    "type": "string",
                    "example": "0"
                },
                "id": {
                    "type": "integer"
                },
                "status": {
                    "$ref": "#/definitions/entity.ClusterMaintenanceExecutionStatus"
                },
                "task_id": {
                    "description": "the id of MaintenanceTaskExecution in the core svc",
                    "type": "integer"
                }
            }
        },
        "entity.ClusterMaintenanceExecutionStatus": {
            "type": "string",
            "enum": [
                "Pending",
                "Running",
                "Done",
                "Canceled"
            ],
            "x-enum-varnames": [
                "ClusterMaintenanceExecutionStatusPending",
                "ClusterMaintenanceExecutionStatusRunning",
                "ClusterMaintenanceExecutionStatusDone",
                "ClusterMaintenanceExecutionStatusCanceled"
            ]
        },
        "entity.ClusterMaintenanceTask": {
            "type": "object",
            "properties": {
                "create_at": {
                    "type": "string"
                },
                "deadline": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "executions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.ClusterMaintenanceExecution"
                    }
                },
                "id": {
                    "type": "integer"
                },
                "project_id": {
                    "type": "string",
                    "example": "0"
                },
                "schedule_time": {
                    "type": "string"
                },
                "status": {
                    "$ref": "#/definitions/entity.ClusterMaintenanceTaskStatus"
                }
            }
        },
        "entity.ClusterMaintenanceTaskStatus": {
            "type": "string",
            "enum": [
                "Pending",
                "Running",
                "Closed"
            ],
            "x-enum-varnames": [
                "ClusterMaintenanceTaskStatusPending",
                "ClusterMaintenanceTaskStatusRunning",
                "ClusterMaintenanceTaskStatusClosed"
            ]
        },
        "entity.ConfigAttributes": {
            "type": "object",
            "properties": {
                "apply_policy": {
                    "$ref": "#/definitions/entity.ApplyStrategy"
                },
                "id": {
                    "type": "integer"
                },
                "param_name": {
                    "type": "string"
                },
                "version": {
                    "type": "integer"
                }
            }
        },
        "entity.ConfigPair": {
            "type": "object",
            "properties": {
                "current_image": {
                    "type": "string"
                },
                "current_toml": {
                    "type": "string"
                },
                "next_image": {
                    "type": "string"
                },
                "next_toml": {
                    "type": "string"
                }
            }
        },
        "entity.ConfigPairs": {
            "type": "object",
            "properties": {
                "config_pair_map": {
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/entity.ConfigPair"
                    }
                },
                "creation_timestamp_unix": {
                    "type": "integer"
                }
            }
        },
        "entity.Incident": {
            "type": "object",
            "properties": {
                "biz_regions": {
                    "type": "string"
                },
                "components": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "fbowners": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.User"
                    }
                },
                "feishu_channel_msg": {
                    "type": "string"
                },
                "feishu_url": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "incident_resolve_time": {
                    "type": "string"
                },
                "incident_start_time": {
                    "type": "string"
                },
                "jira_issues": {
                    "type": "string"
                },
                "leaders": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.User"
                    }
                },
                "log_items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.IncidentLogItem"
                    }
                },
                "name": {
                    "type": "string"
                },
                "oncallers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.User"
                    }
                },
                "postmortem_available": {
                    "type": "boolean"
                },
                "status": {
                    "$ref": "#/definitions/entity.IncidentStatus"
                },
                "tier": {
                    "$ref": "#/definitions/entity.IncidentTier"
                }
            }
        },
        "entity.IncidentLogItem": {
            "type": "object",
            "properties": {
                "created_at": {
                    "description": "Will be deprecated next release",
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "event_time": {
                    "type": "string"
                },
                "from": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "incident_id": {
                    "type": "integer"
                },
                "item_type": {
                    "$ref": "#/definitions/entity.LogItemType"
                },
                "milestone_type": {
                    "type": "string"
                },
                "postmortem_url": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "entity.IncidentPostMortem": {
            "type": "object",
            "properties": {
                "action_items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.IncidentPostMortemToDoAction"
                    }
                },
                "background": {
                    "type": "string"
                },
                "bug_mechanism": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "customer_impact_minutes": {
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "impact": {
                    "type": "string"
                },
                "incident_end_time": {
                    "type": "string"
                },
                "incident_id": {
                    "type": "integer"
                },
                "incident_start_time": {
                    "type": "string"
                },
                "involved_engineers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.User"
                    }
                },
                "involved_tenants": {
                    "type": "string"
                },
                "minutes_to_detect": {
                    "type": "integer"
                },
                "minutes_to_resolved": {
                    "type": "integer"
                },
                "resolution": {
                    "type": "string"
                },
                "reviewed_at": {
                    "type": "string"
                },
                "root_causes": {
                    "type": "string"
                },
                "summary": {
                    "type": "string"
                },
                "technical_impact_level": {
                    "type": "string"
                },
                "timeline": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.IncidentPostMortemTimelineItem"
                    }
                },
                "top_issues": {
                    "type": "string"
                },
                "what_did_not_work": {
                    "type": "string"
                },
                "what_worked": {
                    "type": "string"
                },
                "where_we_were_lucky": {
                    "type": "string"
                }
            }
        },
        "entity.IncidentPostMortemTimelineItem": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "happened_at": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "item_type": {
                    "type": "string"
                },
                "postmortem_id": {
                    "type": "integer"
                }
            }
        },
        "entity.IncidentPostMortemToDoAction": {
            "type": "object",
            "properties": {
                "deadline": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "incident_id": {
                    "type": "integer"
                },
                "persons": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.User"
                    }
                },
                "postmortem_id": {
                    "type": "integer"
                },
                "status": {
                    "description": "InProgress or Done or Canceled",
                    "type": "string"
                },
                "title": {
                    "type": "string"
                }
            }
        },
        "entity.IncidentStatus": {
            "type": "string",
            "enum": [
                "running",
                "completed"
            ],
            "x-enum-varnames": [
                "IncidentStatusRunning",
                "IncidentStatusFinished"
            ]
        },
        "entity.IncidentTier": {
            "type": "string",
            "enum": [
                "t0",
                "t1",
                "t2",
                "t3",
                "t4"
            ],
            "x-enum-varnames": [
                "IncidentTierT0",
                "IncidentTierT1",
                "IncidentTierT2",
                "IncidentTierT3",
                "IncidentTierT4"
            ]
        },
        "entity.LarkChatSimplified": {
            "type": "object",
            "required": [
                "id"
            ],
            "properties": {
                "avatar_url": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "is_external": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "entity.LarkType": {
            "type": "string",
            "enum": [
                "cn",
                "global"
            ],
            "x-enum-varnames": [
                "LarkTypeCN",
                "LarkTypeGlobal"
            ]
        },
        "entity.LogItemType": {
            "type": "string",
            "enum": [
                "text",
                "postmortem",
                "general",
                "milestone"
            ],
            "x-enum-varnames": [
                "LogItemTypeText",
                "LogItemTypePostMortem",
                "LogItemTypeGeneral",
                "LogItemTypeMilestone"
            ]
        },
        "entity.MonthlyTrend": {
            "type": "object",
            "properties": {
                "month": {
                    "type": "string"
                },
                "value": {
                    "type": "number"
                }
            }
        },
        "entity.Privilege": {
            "type": "object",
            "required": [
                "operation",
                "resource"
            ],
            "properties": {
                "description": {
                    "type": "string"
                },
                "operation": {
                    "type": "string"
                },
                "resource": {
                    "type": "string"
                }
            }
        },
        "entity.Role": {
            "type": "object",
            "required": [
                "name",
                "privileges"
            ],
            "properties": {
                "description": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "privileges": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.Privilege"
                    }
                }
            }
        },
        "entity.SLA": {
            "type": "object",
            "properties": {
                "current": {
                    "type": "number"
                },
                "monthlyTrends": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.SeriesMonthlyTrend"
                    }
                }
            }
        },
        "entity.SLIMeta": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "objectives": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.SLOMeta"
                    }
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "entity.SLO": {
            "type": "object",
            "properties": {
                "met": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "reason": {
                    "type": "string"
                }
            }
        },
        "entity.SLOMeta": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "op": {
                    "type": "string"
                },
                "promql": {
                    "type": "string"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "entity.SecondaryConfirmInRepo": {
            "type": "object",
            "properties": {
                "applied_policy": {
                    "$ref": "#/definitions/entity.ApplyStrategy"
                },
                "cluster_id": {
                    "type": "string"
                },
                "cluster_name": {
                    "type": "string"
                },
                "created": {
                    "type": "string"
                },
                "diff_info": {
                    "$ref": "#/definitions/entity.ConfigPairs"
                },
                "hot_reloadable": {
                    "type": "boolean"
                },
                "id": {
                    "type": "integer"
                },
                "project_id": {
                    "type": "string"
                },
                "revision_id": {
                    "type": "string"
                },
                "status": {
                    "$ref": "#/definitions/entity.SecondaryConfirmStatus"
                },
                "tenant_name": {
                    "type": "string"
                }
            }
        },
        "entity.SecondaryConfirmStatus": {
            "type": "string",
            "enum": [
                "generated",
                "outdated",
                "applying",
                "applied"
            ],
            "x-enum-varnames": [
                "SecondaryConfirmGenerated",
                "SecondaryConfirmOutdated",
                "SecondaryConfirmApplying",
                "SecondaryConfirmApplied"
            ]
        },
        "entity.SeriesMonthlyTrend": {
            "type": "object",
            "properties": {
                "month": {
                    "type": "string"
                },
                "series": {
                    "type": "string"
                },
                "value": {
                    "type": "integer"
                }
            }
        },
        "entity.TenantKind": {
            "type": "string",
            "enum": [
                "internal",
                "external"
            ],
            "x-enum-varnames": [
                "TenantKindInternal",
                "TenantKindExternal"
            ]
        },
        "entity.TenantPlan": {
            "type": "string",
            "enum": [
                "new_user",
                "free_trial",
                "poc",
                "on_demand"
            ],
            "x-enum-varnames": [
                "TenantPlanNewUser",
                "TenantPlanFreeTrial",
                "TenantPlanPoc",
                "TenantPlanOnDemand"
            ]
        },
        "entity.TenantRegion": {
            "type": "string",
            "enum": [
                "APAC",
                "EMEA",
                "JAPAN",
                "NA",
                "UNKNOWN"
            ],
            "x-enum-varnames": [
                "TenantRegionAPAC",
                "TenantRegionEMEA",
                "TenantRegionJapan",
                "TenantRegionNA",
                "TenantRegionUnknown"
            ]
        },
        "entity.TenantSegmentation": {
            "type": "string",
            "enum": [
                "SKA",
                "KA",
                "SMB",
                "UNKNOWN"
            ],
            "x-enum-varnames": [
                "TenantSegmentationSKA",
                "TenantSegmentationKA",
                "TenantSegmentationSMB",
                "TenantSegmentationUnknown"
            ]
        },
        "entity.TenantStatus": {
            "type": "string",
            "enum": [
                "pending",
                "active",
                "inactive",
                "deleted",
                "cleared"
            ],
            "x-enum-varnames": [
                "TenantStatusPending",
                "TenantStatusActive",
                "TenantStatusInactive",
                "TenantStatusDeleted",
                "TenantStatusCleared"
            ]
        },
        "entity.TopTenant": {
            "type": "object",
            "properties": {
                "alias": {
                    "type": "string"
                },
                "id": {
                    "type": "string",
                    "example": "0"
                },
                "name": {
                    "type": "string"
                },
                "region": {
                    "$ref": "#/definitions/entity.TenantRegion"
                },
                "value": {
                    "type": "integer"
                }
            }
        },
        "entity.User": {
            "type": "object",
            "properties": {
                "available": {
                    "type": "boolean"
                },
                "delete_at": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "github_id": {
                    "description": "empty means unset",
                    "type": "string"
                },
                "lark_department_id": {
                    "type": "string"
                },
                "lark_department_name": {
                    "type": "string"
                },
                "lark_type": {
                    "$ref": "#/definitions/entity.LarkType"
                },
                "lark_user_id": {
                    "type": "string"
                },
                "lark_user_name": {
                    "type": "string"
                }
            }
        },
        "entity.UserGroup": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "source": {
                    "$ref": "#/definitions/entity.UserGroupSource"
                }
            }
        },
        "entity.UserGroupSource": {
            "type": "string",
            "enum": [
                "custom",
                "lark"
            ],
            "x-enum-varnames": [
                "UserGroupSourceCustom",
                "UserGroupSourceLark"
            ]
        },
        "github.CursorPagerResp": {
            "type": "object",
            "properties": {
                "end_cursor": {
                    "type": "string"
                },
                "has_next_page": {
                    "type": "boolean"
                }
            }
        },
        "github.GetPullRequestResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "pull_request": {
                    "$ref": "#/definitions/github.PullRequest"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "github.GetRepositoryResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "repository": {
                    "$ref": "#/definitions/github.Repository"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "github.Label": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "integer"
                },
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "integer"
                }
            }
        },
        "github.ListPullRequestsResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github.PullRequest"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "github.ListRepositoriesResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "repositories": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github.Repository"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "github.PullRequest": {
            "type": "object",
            "properties": {
                "author": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "location": {
                    "type": "string"
                },
                "number": {
                    "type": "integer"
                },
                "owner": {
                    "type": "string"
                },
                "repo": {
                    "type": "string"
                },
                "state": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "integer"
                }
            }
        },
        "github.RawDiffReleaseResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "pull_requests": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github.PullRequest"
                    }
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "github.RawGetLabelResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "label": {
                    "$ref": "#/definitions/github.Label"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "github.RawGetPullRequestResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "pull_request": {
                    "$ref": "#/definitions/github.PullRequest"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "github.RawGetReleaseResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "release": {
                    "$ref": "#/definitions/github.Release"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "github.RawListLabelsResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "labels": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github.Label"
                    }
                },
                "page": {
                    "$ref": "#/definitions/github.CursorPagerResp"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "github.RawListPullRequestsResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "page": {
                    "$ref": "#/definitions/github.CursorPagerResp"
                },
                "pull_requests": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github.PullRequest"
                    }
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "github.RawListReleasesResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "page": {
                    "$ref": "#/definitions/github.CursorPagerResp"
                },
                "releases": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github.Release"
                    }
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "github.Release": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "integer"
                },
                "is_latest": {
                    "type": "boolean"
                },
                "is_prerelease": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "published_at": {
                    "type": "integer"
                },
                "tag_name": {
                    "type": "string"
                }
            }
        },
        "github.Repository": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                },
                "location": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "owner": {
                    "type": "string"
                },
                "pushed_at": {
                    "type": "integer"
                },
                "update_at": {
                    "type": "integer"
                }
            }
        },
        "github_com_tidbcloud_devops_api_release.Change": {
            "type": "object",
            "properties": {
                "applicant": {
                    "$ref": "#/definitions/entity.User"
                },
                "applicant_email": {
                    "type": "string"
                },
                "application": {
                    "$ref": "#/definitions/entity.Application"
                },
                "application_id": {
                    "type": "string"
                },
                "approval_id": {
                    "type": "integer"
                },
                "change_id": {
                    "type": "integer"
                },
                "change_item_names": {
                    "description": "release ticket names",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "change_items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ReleaseTicket"
                    }
                },
                "closed_at": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "deployment": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeDeployment"
                    }
                },
                "detail": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeDetail"
                },
                "name": {
                    "type": "string"
                },
                "notification": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeNotification"
                },
                "release": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.Release"
                },
                "release_id": {
                    "description": "release id",
                    "type": "integer"
                },
                "result": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeResult"
                },
                "risk_level": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.RiskLevel"
                },
                "status": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeStatus"
                },
                "tier": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/release.ChangeTier"
                    }
                },
                "type": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeType"
                },
                "window_end_at": {
                    "description": "zero means unlimited",
                    "type": "integer"
                },
                "window_start_at": {
                    "description": "zero means unlimited",
                    "type": "integer"
                }
            }
        },
        "github_com_tidbcloud_devops_entity_audit.AuditLog": {
            "type": "object",
            "properties": {
                "details": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "id": {
                    "type": "integer"
                },
                "object_id": {
                    "type": "string"
                },
                "operate_at": {
                    "type": "string"
                },
                "operation": {
                    "type": "string"
                },
                "operator": {
                    "type": "string"
                },
                "type": {
                    "$ref": "#/definitions/audit.AuditLogType"
                }
            }
        },
        "github_com_tidbcloud_devops_entity_cloudconfig.ClusterConfigurationLocator": {
            "type": "object",
            "properties": {
                "cluster_id": {
                    "type": "string"
                },
                "cluster_type": {
                    "$ref": "#/definitions/cloudconfig.ClusterType"
                }
            }
        },
        "github_com_tidbcloud_devops_entity_cloudconfig.ConfigurationChange": {
            "type": "object",
            "properties": {
                "applicant": {
                    "type": "string"
                },
                "applied_at": {
                    "type": "integer"
                },
                "apply_policy": {
                    "$ref": "#/definitions/cloudconfig.ParameterApplyPolicy"
                },
                "approval_id": {
                    "type": "integer"
                },
                "closed_at": {
                    "type": "integer"
                },
                "created_at": {
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "phase": {
                    "$ref": "#/definitions/cloudconfig.ConfigurationChangePhase"
                },
                "reason": {
                    "type": "string"
                },
                "scope": {
                    "$ref": "#/definitions/cloudconfig.ConfigurationChangeScope"
                },
                "target_cluster": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_cloudconfig.ClusterConfigurationLocator"
                },
                "target_tenant": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_cloudconfig.TenantInitConfigurationLocator"
                },
                "target_type": {
                    "$ref": "#/definitions/cloudconfig.ConfigurationChangeTargetType"
                },
                "target_version": {
                    "description": "TargetVersion is the version of the target.\nNOTE: If version is changed, it will be the changed version.",
                    "type": "string"
                }
            }
        },
        "github_com_tidbcloud_devops_entity_cloudconfig.ConfigurationComponentChange": {
            "type": "object",
            "properties": {
                "component": {
                    "description": "Component is the component name.",
                    "type": "string"
                },
                "id": {
                    "description": "ID is the id in the database.",
                    "type": "integer"
                },
                "modified_image_tag": {
                    "description": "ModifiedImageTag records the change for effective image tag",
                    "allOf": [
                        {
                            "$ref": "#/definitions/cloudconfig.ChangedImageTag"
                        }
                    ]
                },
                "modified_overwirte_image_tag": {
                    "description": "ModifiedOverwriteImageTag contains the the change for overwrite image tag",
                    "allOf": [
                        {
                            "$ref": "#/definitions/cloudconfig.ChangedImageTag"
                        }
                    ]
                }
            }
        },
        "github_com_tidbcloud_devops_entity_cloudconfig.ConfigurationFileChange": {
            "type": "object",
            "properties": {
                "all_parameters": {
                    "description": "AllParameters contain all used parameters.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/cloudconfig.UsedParameter"
                    }
                },
                "config_type": {
                    "description": "ConfigType is the config type of the file",
                    "type": "string"
                },
                "filename": {
                    "description": "Filename is the name of the file.",
                    "type": "string"
                },
                "id": {
                    "description": "ID is the id in the database.",
                    "type": "integer"
                },
                "modified_parameters": {
                    "description": "ModifiedParameters is the modified configs.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/cloudconfig.ChangedParameter"
                    }
                },
                "modified_template": {
                    "description": "ModifiedTemplate is the modified template",
                    "allOf": [
                        {
                            "$ref": "#/definitions/cloudconfig.ChangedTemplate"
                        }
                    ]
                },
                "previous_text": {
                    "description": "PreviousText is the file text before the change.\nIt is used to check this change is sequential.",
                    "type": "string"
                },
                "template_id": {
                    "description": "TemplateID is the id of used template.\nNOTE: If template is changed, it will be the changed template.",
                    "type": "integer"
                }
            }
        },
        "github_com_tidbcloud_devops_entity_cloudconfig.ConfigurationVersionChange": {
            "type": "object",
            "properties": {
                "from": {
                    "type": "string"
                },
                "id": {
                    "description": "ID is the id in the database.",
                    "type": "integer"
                },
                "to": {
                    "type": "string"
                }
            }
        },
        "github_com_tidbcloud_devops_entity_cloudconfig.TenantInitConfigurationLocator": {
            "type": "object",
            "properties": {
                "cluster_type": {
                    "$ref": "#/definitions/cloudconfig.ClusterType"
                },
                "tenant_id": {
                    "type": "string",
                    "example": "0"
                }
            }
        },
        "github_com_tidbcloud_devops_entity_release.Change": {
            "type": "object",
            "properties": {
                "applicant": {
                    "$ref": "#/definitions/entity.User"
                },
                "applicant_email": {
                    "type": "string"
                },
                "application": {
                    "$ref": "#/definitions/entity.Application"
                },
                "application_id": {
                    "type": "string"
                },
                "approval_id": {
                    "description": "the used approval id",
                    "type": "integer"
                },
                "change_item_names": {
                    "description": "release ticket names",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "change_items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ReleaseTicket"
                    }
                },
                "closed_at": {
                    "type": "string"
                },
                "created_at": {
                    "description": "readonly",
                    "type": "string"
                },
                "deployments": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeDeployment"
                    }
                },
                "detail": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeDetail"
                },
                "id": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "notification": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeNotification"
                },
                "prev_approval_ids": {
                    "description": "the previous approval ids",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "release": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.Release"
                },
                "release_id": {
                    "description": "release id",
                    "type": "integer"
                },
                "result": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeResult"
                },
                "risk_level": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.RiskLevel"
                },
                "status": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeStatus"
                },
                "status_reason": {
                    "description": "the reason to describe why the status changed or pending",
                    "type": "string"
                },
                "tier": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/release.ChangeTier"
                    }
                },
                "type": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeType"
                },
                "window_end_at": {
                    "description": "timestamp, zero means unlimited",
                    "type": "integer"
                },
                "window_start_at": {
                    "description": "timestamp, zero means unlimited",
                    "type": "integer"
                }
            }
        },
        "github_com_tidbcloud_devops_entity_release.ChangeDeployMethod": {
            "type": "string",
            "enum": [
                "argocd",
                "manual"
            ],
            "x-enum-varnames": [
                "ChangeDeployMethodArgoCD",
                "ChangeDeployMethodManual"
            ]
        },
        "github_com_tidbcloud_devops_entity_release.ChangeDeployStatus": {
            "type": "string",
            "enum": [
                "created",
                "deployed",
                "verified"
            ],
            "x-enum-varnames": [
                "ChangeDeployStatusCreated",
                "ChangeDeployStatusDeployed",
                "ChangeDeployStatusVerified"
            ]
        },
        "github_com_tidbcloud_devops_entity_release.ChangeDeployment": {
            "type": "object",
            "properties": {
                "deployed_at": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "info": {
                    "$ref": "#/definitions/release.ChangeDeployInfo"
                },
                "method": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeDeployMethod"
                },
                "note": {
                    "type": "string"
                },
                "order": {
                    "type": "integer"
                },
                "regions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/release.RegionName"
                    }
                },
                "status": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeDeployStatus"
                }
            }
        },
        "github_com_tidbcloud_devops_entity_release.ChangeDetail": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                },
                "need_outage": {
                    "type": "boolean"
                },
                "note": {
                    "type": "string"
                },
                "rollback_plan": {
                    "type": "string"
                },
                "staging_test_report": {
                    "type": "string"
                },
                "summary": {
                    "type": "string"
                }
            }
        },
        "github_com_tidbcloud_devops_entity_release.ChangeNotification": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                },
                "lark_topic_created_at": {
                    "type": "string"
                },
                "lark_topic_id": {
                    "type": "string"
                },
                "notified_to_close_at": {
                    "type": "string"
                }
            }
        },
        "github_com_tidbcloud_devops_entity_release.ChangeResult": {
            "type": "string",
            "enum": [
                "cancel",
                "successful",
                "failed",
                "failed_partially",
                "rollback"
            ],
            "x-enum-varnames": [
                "ChangeResultCancel",
                "ChangeResultSuccessful",
                "ChangeResultFailed",
                "ChangeResultFailedPartially",
                "ChangeResultRollback"
            ]
        },
        "github_com_tidbcloud_devops_entity_release.ChangeStatus": {
            "type": "string",
            "enum": [
                "draft",
                "created",
                "approving",
                "wait_for_deploy",
                "in_progress",
                "observing",
                "closed",
                "withdrawn"
            ],
            "x-enum-varnames": [
                "ChangeStatusDraft",
                "ChangeStatusCreated",
                "ChangeStatusApproving",
                "ChangeStatusWaitForDeploy",
                "ChangeStatusInProgress",
                "ChangeStatusObserving",
                "ChangeStatusClosed",
                "ChangeStatusWithdrawn"
            ]
        },
        "github_com_tidbcloud_devops_entity_release.ChangeType": {
            "type": "string",
            "enum": [
                "sprint",
                "hotfix"
            ],
            "x-enum-varnames": [
                "ChangeTypeSprint",
                "ChangeTypeHotfix"
            ]
        },
        "github_com_tidbcloud_devops_entity_release.Release": {
            "type": "object",
            "properties": {
                "closed_at": {
                    "type": "string"
                },
                "id": {
                    "description": "release id in repo",
                    "type": "integer"
                },
                "name": {
                    "description": "ex: release-20230501",
                    "type": "string"
                },
                "status": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ReleaseStatus"
                },
                "tickets": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ReleaseTicket"
                    }
                },
                "type": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ReleaseType"
                },
                "window_end_at": {
                    "type": "string"
                },
                "window_start_at": {
                    "type": "string"
                }
            }
        },
        "github_com_tidbcloud_devops_entity_release.ReleaseStatus": {
            "type": "string",
            "enum": [
                "before_release",
                "open",
                "finished"
            ],
            "x-enum-varnames": [
                "ReleaseStatusBeforeRelease",
                "ReleaseStatusOpen",
                "ReleaseStatusFinished"
            ]
        },
        "github_com_tidbcloud_devops_entity_release.ReleaseTicket": {
            "type": "object",
            "properties": {
                "assignee_email": {
                    "description": "empty string means unassigned",
                    "type": "string"
                },
                "github_pr_locations": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "github_prs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github.PullRequest"
                    }
                },
                "name": {
                    "description": "ex: DM-8580",
                    "type": "string"
                },
                "release_id": {
                    "type": "integer"
                },
                "release_name": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "summary": {
                    "type": "string"
                },
                "type": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ReleaseTicketType"
                }
            }
        },
        "github_com_tidbcloud_devops_entity_release.ReleaseTicketType": {
            "type": "string",
            "enum": [
                "dm"
            ],
            "x-enum-varnames": [
                "ReleaseTicketTypeDM"
            ]
        },
        "github_com_tidbcloud_devops_entity_release.ReleaseType": {
            "type": "string",
            "enum": [
                "periodic"
            ],
            "x-enum-varnames": [
                "ReleaseTypePeriodic"
            ]
        },
        "github_com_tidbcloud_devops_entity_release.RiskLevel": {
            "type": "string",
            "enum": [
                "low",
                "high"
            ],
            "x-enum-varnames": [
                "RiskLevelLow",
                "RiskLevelHigh"
            ]
        },
        "github_com_tidbcloud_devops_entity_userbehavior.Subscription": {
            "type": "object",
            "required": [
                "id"
            ],
            "properties": {
                "available": {
                    "type": "boolean"
                },
                "creator": {
                    "description": "Creator email",
                    "type": "string"
                },
                "event_type": {
                    "$ref": "#/definitions/userbehavior.UBEventTp"
                },
                "id": {
                    "type": "integer"
                },
                "lark_chats": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.LarkChatSimplified"
                    }
                },
                "name": {
                    "type": "string"
                },
                "only_paid_tenant": {
                    "type": "boolean"
                },
                "selector": {
                    "$ref": "#/definitions/userbehavior.SelectorTp"
                },
                "subscribe_type": {
                    "$ref": "#/definitions/userbehavior.SubscribeTp"
                },
                "template": {
                    "type": "string"
                }
            }
        },
        "incident.CreateIncidentPostMortemReq": {
            "type": "object",
            "properties": {
                "background": {
                    "type": "string"
                },
                "bug_mechanism": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "customer_impact_minutes": {
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "impact": {
                    "type": "string"
                },
                "incident_end_time": {
                    "type": "string"
                },
                "incident_id": {
                    "type": "integer"
                },
                "incident_start_time": {
                    "type": "string"
                },
                "involved_engineers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.User"
                    }
                },
                "involved_tenants": {
                    "type": "string"
                },
                "minutes_to_detect": {
                    "type": "integer"
                },
                "minutes_to_resolved": {
                    "type": "integer"
                },
                "resolution": {
                    "type": "string"
                },
                "reviewed_at": {
                    "type": "string"
                },
                "root_causes": {
                    "type": "string"
                },
                "summary": {
                    "type": "string"
                },
                "technical_impact_level": {
                    "type": "string"
                },
                "top_issues": {
                    "type": "string"
                },
                "what_did_not_work": {
                    "type": "string"
                },
                "what_worked": {
                    "type": "string"
                },
                "where_we_were_lucky": {
                    "type": "string"
                }
            }
        },
        "incident.CreateIncidentPostMortemResp": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                }
            }
        },
        "incident.CreateIncidentPostMortemTimelineReq": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "happened_at": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "item_type": {
                    "type": "string"
                },
                "postmortem_id": {
                    "type": "integer"
                }
            }
        },
        "incident.CreateIncidentPostMortemTimelineResp": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                }
            }
        },
        "incident.CreateIncidentPostMortemToDoActionReq": {
            "type": "object",
            "properties": {
                "create_feishu_task": {
                    "type": "boolean"
                },
                "deadline": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "feishu_task_id": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "persons": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.User"
                    }
                },
                "postmortem_id": {
                    "type": "integer"
                },
                "status": {
                    "description": "InProgress or Done or Canceled",
                    "type": "string"
                },
                "title": {
                    "type": "string"
                }
            }
        },
        "incident.CreateIncidentPostMortemToDoActionResp": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                }
            }
        },
        "incident.CreateIncidentReq": {
            "type": "object",
            "properties": {
                "biz_regions": {
                    "type": "string"
                },
                "components": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "fbowners": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "feishu_url": {
                    "type": "string"
                },
                "incident_resolve_time": {
                    "type": "string"
                },
                "incident_start_time": {
                    "type": "string"
                },
                "jira_issues": {
                    "type": "string"
                },
                "leaders": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "name": {
                    "type": "string"
                },
                "need_generate_feishu": {
                    "type": "boolean"
                },
                "oncallers": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "status": {
                    "type": "string"
                },
                "tier": {
                    "type": "string"
                }
            }
        },
        "incident.CreateIncidentResp": {
            "type": "object",
            "properties": {
                "incident_id": {
                    "type": "integer"
                }
            }
        },
        "incident.DeleteIncidentLogItemResp": {
            "type": "object",
            "properties": {
                "deleted_incident_logitem_id": {
                    "type": "integer"
                }
            }
        },
        "incident.DeleteIncidentPostMortemResp": {
            "type": "object"
        },
        "incident.DeleteIncidentPostMortemTimelineResp": {
            "type": "object"
        },
        "incident.DeleteIncidentPostMortemToDoActionResp": {
            "type": "object"
        },
        "incident.DeleteIncidentResp": {
            "type": "object",
            "properties": {
                "deleted_incident_id": {
                    "type": "integer"
                }
            }
        },
        "incident.GetIncidentPostMortemResp": {
            "type": "object",
            "properties": {
                "incident_post_mortem": {
                    "$ref": "#/definitions/entity.IncidentPostMortem"
                }
            }
        },
        "incident.GetIncidentPostMortemTimelineResp": {
            "type": "object",
            "properties": {
                "incident_postmortem_timeline": {
                    "$ref": "#/definitions/entity.IncidentPostMortemTimelineItem"
                }
            }
        },
        "incident.GetIncidentPostMortemToDoActionResp": {
            "type": "object",
            "properties": {
                "incident_postmortem_todoaction": {
                    "$ref": "#/definitions/entity.IncidentPostMortemToDoAction"
                }
            }
        },
        "incident.ListIncidentLogsResp": {
            "type": "object",
            "properties": {
                "incident_id": {
                    "type": "integer"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.IncidentLogItem"
                    }
                }
            }
        },
        "incident.ListIncidentPostMortemItemsResp": {
            "type": "object",
            "properties": {
                "incident_id": {
                    "type": "integer"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.IncidentPostMortem"
                    }
                }
            }
        },
        "incident.ListIncidentPostMortemTimelinesResp": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.IncidentPostMortemTimelineItem"
                    }
                },
                "postmortem_id": {
                    "type": "integer"
                }
            }
        },
        "incident.ListIncidentPostMortemToDoActionsResp": {
            "type": "object",
            "properties": {
                "incident_id": {
                    "type": "integer"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.IncidentPostMortemToDoAction"
                    }
                }
            }
        },
        "incident.ListIncidentsResp": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.Incident"
                    }
                }
            }
        },
        "incident.UpdateIncidentPostMortemReq": {
            "type": "object",
            "properties": {
                "background": {
                    "type": "string"
                },
                "bug_mechanism": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "customer_impact_minutes": {
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "impact": {
                    "type": "string"
                },
                "incident_end_time": {
                    "type": "string"
                },
                "incident_id": {
                    "type": "integer"
                },
                "incident_start_time": {
                    "type": "string"
                },
                "involved_engineers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.User"
                    }
                },
                "involved_tenants": {
                    "type": "string"
                },
                "minutes_to_detect": {
                    "type": "integer"
                },
                "minutes_to_resolved": {
                    "type": "integer"
                },
                "resolution": {
                    "type": "string"
                },
                "reviewed_at": {
                    "type": "string"
                },
                "root_causes": {
                    "type": "string"
                },
                "summary": {
                    "type": "string"
                },
                "technical_impact_level": {
                    "type": "string"
                },
                "top_issues": {
                    "type": "string"
                },
                "what_did_not_work": {
                    "type": "string"
                },
                "what_worked": {
                    "type": "string"
                },
                "where_we_were_lucky": {
                    "type": "string"
                }
            }
        },
        "incident.UpdateIncidentPostMortemResp": {
            "type": "object"
        },
        "incident.UpdateIncidentPostMortemTimelineReq": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "happened_at": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "item_type": {
                    "type": "string"
                },
                "postmortem_id": {
                    "type": "integer"
                }
            }
        },
        "incident.UpdateIncidentPostMortemTimelineResp": {
            "type": "object"
        },
        "incident.UpdateIncidentPostMortemToDoActionReq": {
            "type": "object",
            "properties": {
                "deadline": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "feishu_task_id": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "persons": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.User"
                    }
                },
                "postmortem_id": {
                    "type": "integer"
                },
                "status": {
                    "description": "InProgress or Done or Canceled",
                    "type": "string"
                },
                "title": {
                    "type": "string"
                }
            }
        },
        "incident.UpdateIncidentPostMortemToDoActionResp": {
            "type": "object"
        },
        "incident.UpdateIncidentReq": {
            "type": "object",
            "properties": {
                "biz_regions": {
                    "type": "string"
                },
                "components": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "fbowners": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "feishu_url": {
                    "type": "string"
                },
                "incident_resolve_time": {
                    "type": "string"
                },
                "incident_start_time": {
                    "type": "string"
                },
                "jira_issues": {
                    "type": "string"
                },
                "leaders": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "name": {
                    "type": "string"
                },
                "oncallers": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "status": {
                    "type": "string"
                },
                "tier": {
                    "type": "string"
                }
            }
        },
        "incident.UpdateIncidentResp": {
            "type": "object"
        },
        "jira.Alert": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "integer"
                },
                "key": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "priority": {
                    "type": "string"
                },
                "recovered": {
                    "type": "boolean"
                },
                "updated_at": {
                    "type": "integer"
                }
            }
        },
        "jira.SeriesTrend": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "series": {
                    "type": "string"
                },
                "value": {
                    "type": "integer"
                }
            }
        },
        "jump.Authorization": {
            "type": "object",
            "properties": {
                "applicant": {
                    "description": "email",
                    "type": "string"
                },
                "approval_id": {
                    "type": "integer"
                },
                "closed_at": {
                    "type": "integer"
                },
                "cluster_deploy_type": {
                    "$ref": "#/definitions/jump.JumpClusterDeployType"
                },
                "cluster_id": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "expiration": {
                    "$ref": "#/definitions/jump.JumpExpiration"
                },
                "expire_at": {
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "phase": {
                    "description": "status",
                    "allOf": [
                        {
                            "$ref": "#/definitions/jump.AuthorizationPhase"
                        }
                    ]
                },
                "plane": {
                    "$ref": "#/definitions/jump.JumpPlane"
                },
                "privilege": {
                    "$ref": "#/definitions/jump.JumpPrivilege"
                },
                "reason": {
                    "type": "string"
                },
                "token_refresh_at": {
                    "description": "jump token expire time, nil means no expire",
                    "type": "integer"
                }
            }
        },
        "jump.AuthorizationPhase": {
            "type": "string",
            "enum": [
                "initialized",
                "approving",
                "creating",
                "created",
                "expired",
                "notapproved",
                "creationfailed",
                "canceled"
            ],
            "x-enum-varnames": [
                "AuthorizationPhaseInitialized",
                "AuthorizationPhaseApproving",
                "AuthorizationPhaseCreating",
                "AuthorizationPhaseCreated",
                "AuthorizationPhaseExpired",
                "AuthorizationPhaseNotApproved",
                "AuthorizationPhaseCreationFailed",
                "AuthorizationPhaseCanceled"
            ]
        },
        "jump.CreateAuthorizationReq": {
            "type": "object",
            "properties": {
                "cluster_deploy_type": {
                    "$ref": "#/definitions/jump.JumpClusterDeployType"
                },
                "cluster_id": {
                    "type": "string"
                },
                "expiration": {
                    "$ref": "#/definitions/jump.JumpExpiration"
                },
                "plane": {
                    "$ref": "#/definitions/jump.JumpPlane"
                },
                "privilege": {
                    "$ref": "#/definitions/jump.JumpPrivilege"
                },
                "reason": {
                    "type": "string"
                }
            }
        },
        "jump.CreateAuthorizationResp": {
            "type": "object",
            "properties": {
                "authorization_id": {
                    "type": "integer"
                },
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "jump.GetAuthorizationResp": {
            "type": "object",
            "properties": {
                "authorization": {
                    "$ref": "#/definitions/jump.Authorization"
                },
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "jump.GetConnectJumpPodParamsResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "params": {
                    "$ref": "#/definitions/jump.JumppodConnectParam"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "jump.GetControlPlaneOptionsResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "options": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "jump.GetServerlessOptionsResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "options": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "jump.GetUserResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "trace_id": {
                    "type": "string"
                },
                "user_id": {
                    "type": "string"
                }
            }
        },
        "jump.InviteUserFailedItem": {
            "type": "object",
            "properties": {
                "email": {
                    "type": "string"
                },
                "err": {
                    "type": "string"
                }
            }
        },
        "jump.InviteUserReq": {
            "type": "object",
            "properties": {
                "emails": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "jump.InviteUserResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "failed": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/jump.InviteUserFailedItem"
                    }
                },
                "success": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "jump.JumpClusterDeployType": {
            "type": "string",
            "enum": [
                "dedicated",
                "serverless"
            ],
            "x-enum-varnames": [
                "JumpClusterDeployTypeDedicated",
                "JumpClusterDeployTypeServerless"
            ]
        },
        "jump.JumpExpiration": {
            "type": "string",
            "enum": [
                "1h",
                "3h",
                "6h",
                "12h",
                "24h",
                "3d",
                "7d",
                "30d"
            ],
            "x-enum-varnames": [
                "JumpExpiration1Hour",
                "JumpExpiration3Hour",
                "JumpExpiration6Hour",
                "JumpExpiration12Hour",
                "JumpExpiration24Hour",
                "JumpExpiration3Day",
                "JumpExpiration7Day",
                "JumpExpiration30Day"
            ]
        },
        "jump.JumpPlane": {
            "type": "string",
            "enum": [
                "control_plane",
                "data_plane"
            ],
            "x-enum-varnames": [
                "JumpPlaneControlPlane",
                "JumpPlaneDataPlane"
            ]
        },
        "jump.JumpPrivilege": {
            "type": "string",
            "enum": [
                "read_only",
                "read_write",
                "admin"
            ],
            "x-enum-varnames": [
                "JumpPrivilegeReadOnly",
                "JumpPrivilegeReadWrite",
                "JumpPrivilegeAdmin"
            ]
        },
        "jump.JumppodConnectParam": {
            "type": "object",
            "properties": {
                "connection_token": {
                    "type": "string"
                },
                "ctx_name": {
                    "type": "string"
                },
                "jumppod_name": {
                    "type": "string"
                },
                "jumpserver_accessurl": {
                    "type": "string"
                },
                "jumpserver_ssh_addr": {
                    "type": "string"
                }
            }
        },
        "jump.ListAuthorizationsResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/jump.Authorization"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "k8supgrade.GetK8SInformationResp": {
            "type": "object",
            "properties": {
                "admin_nodes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/k8supgrade.Node"
                    }
                },
                "cloud_account": {
                    "type": "string"
                },
                "cloud_provider": {
                    "type": "string"
                },
                "clusters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/k8supgrade.TiDBClusterInfraInfo"
                    }
                },
                "control_plane_version": {
                    "$ref": "#/definitions/k8supgrade.Version"
                },
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "k8s_name": {
                    "type": "string"
                },
                "number_of_tidb_clusters": {
                    "type": "integer"
                },
                "project_id": {
                    "type": "string"
                },
                "region": {
                    "type": "string"
                },
                "tenant_id": {
                    "type": "string"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "k8supgrade.K8sInfo": {
            "type": "object",
            "properties": {
                "admin_nodes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/k8supgrade.Node"
                    }
                },
                "cloud_account": {
                    "type": "string"
                },
                "cloud_provider": {
                    "type": "string"
                },
                "clusters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/k8supgrade.TiDBClusterInfraInfo"
                    }
                },
                "control_plane_version": {
                    "$ref": "#/definitions/k8supgrade.Version"
                },
                "k8s_name": {
                    "type": "string"
                },
                "number_of_tidb_clusters": {
                    "type": "integer"
                },
                "project_id": {
                    "type": "string"
                },
                "region": {
                    "type": "string"
                },
                "tenant_id": {
                    "type": "string"
                }
            }
        },
        "k8supgrade.ListK8SInformationResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/k8supgrade.K8sInfo"
                    }
                },
                "timestamp": {
                    "description": "Timestamp is the time when the list is generated.",
                    "type": "integer"
                },
                "total": {
                    "description": "Total is the number of items.",
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "k8supgrade.Node": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "kind": {
                    "description": "admin-nodes, tidb-nodes, cdc-nodes, dm-nodes",
                    "type": "string"
                },
                "max_skew_version": {
                    "description": "MaxSkewVersion is the max version of the node group behind the control plane's version.",
                    "type": "integer"
                },
                "version": {
                    "$ref": "#/definitions/k8supgrade.Version"
                }
            }
        },
        "k8supgrade.TiDBClusterInfraInfo": {
            "type": "object",
            "properties": {
                "component_nodes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/k8supgrade.Node"
                    }
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "notes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "status": {
                    "type": "string"
                },
                "topology": {
                    "description": "key: component type, value: replicas",
                    "type": "object",
                    "additionalProperties": {
                        "type": "integer"
                    }
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "k8supgrade.Version": {
            "type": "object",
            "properties": {
                "major": {
                    "description": "Major is the major version of the component.",
                    "type": "integer"
                },
                "minor": {
                    "description": "Minor is the minor version of the component.",
                    "type": "integer"
                }
            }
        },
        "operation.ActionMetadata": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "type": {
                    "$ref": "#/definitions/operation.ActionType"
                }
            }
        },
        "operation.ActionStartPolicy": {
            "type": "string",
            "enum": [
                "manual",
                "immediate",
                "schedule"
            ],
            "x-enum-varnames": [
                "ActionStartPolicyMaunal",
                "ActionStartPolicyImmediate",
                "ActionStartPolicySchedule"
            ]
        },
        "operation.ActionStatus": {
            "type": "string",
            "enum": [
                "created",
                "running",
                "succeeded",
                "failed",
                "unknown"
            ],
            "x-enum-varnames": [
                "ActionStatusCreated",
                "ActionStatusRunning",
                "ActionStatusSucceeded",
                "ActionStatusFailed",
                "ActionStatusUnknown"
            ]
        },
        "operation.ActionType": {
            "type": "string",
            "enum": [
                "auto",
                "manual"
            ],
            "x-enum-varnames": [
                "ActionTypeAuto",
                "ActionTypeManual"
            ]
        },
        "operation.CreateInstanceAction": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "start_policy": {
                    "$ref": "#/definitions/operation.ActionStartPolicy"
                },
                "start_schedule_at": {
                    "type": "integer"
                }
            }
        },
        "operation.CreateInstanceReq": {
            "type": "object",
            "properties": {
                "actions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/operation.CreateInstanceAction"
                    }
                },
                "operation": {
                    "type": "string"
                },
                "params": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "reason": {
                    "type": "string"
                },
                "type": {
                    "$ref": "#/definitions/operation.OperationTarget"
                }
            }
        },
        "operation.CreateInstanceResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "instance_id": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "operation.FinishInstanceActionReq": {
            "type": "object",
            "properties": {
                "output": {
                    "type": "string"
                },
                "result": {
                    "$ref": "#/definitions/operation.ActionStatus"
                }
            }
        },
        "operation.GetActionResp": {
            "type": "object",
            "properties": {
                "action": {
                    "$ref": "#/definitions/operation.ActionMetadata"
                },
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "operation.GetInstanceResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "instance": {
                    "$ref": "#/definitions/operation.Instance"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "operation.GetOperationResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "operation": {
                    "$ref": "#/definitions/operation.Operation"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "operation.Instance": {
            "type": "object",
            "properties": {
                "actions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/operation.InstanceAction"
                    }
                },
                "applicant": {
                    "description": "Applicant is the user email who create the instance.",
                    "type": "string"
                },
                "approval_id": {
                    "type": "integer"
                },
                "closed_at": {
                    "type": "integer"
                },
                "created_at": {
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "operation": {
                    "type": "string"
                },
                "outputs": {
                    "description": "Outputs is a map used to store some contexts or results for actions.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "params": {
                    "description": "Params is a map used to provide parameters for actions.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "phase": {
                    "description": "status",
                    "allOf": [
                        {
                            "$ref": "#/definitions/operation.InstancePhase"
                        }
                    ]
                },
                "reason": {
                    "type": "string"
                },
                "type": {
                    "$ref": "#/definitions/operation.OperationTarget"
                }
            }
        },
        "operation.InstanceAction": {
            "type": "object",
            "properties": {
                "finished_at": {
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "order": {
                    "type": "integer"
                },
                "output": {
                    "type": "string"
                },
                "start_policy": {
                    "$ref": "#/definitions/operation.ActionStartPolicy"
                },
                "start_schedule_at": {
                    "description": "schedule time if start policy is `schedule`",
                    "type": "integer"
                },
                "started_at": {
                    "type": "integer"
                },
                "status": {
                    "$ref": "#/definitions/operation.ActionStatus"
                },
                "type": {
                    "$ref": "#/definitions/operation.ActionType"
                }
            }
        },
        "operation.InstancePhase": {
            "type": "string",
            "enum": [
                "created",
                "approving",
                "withdrawn",
                "pending",
                "running",
                "succeeded",
                "failed",
                "canceled"
            ],
            "x-enum-varnames": [
                "InstancePhaseCreated",
                "InstancePhaseApproving",
                "InstancePhaseWithdrawn",
                "InstancePhasePending",
                "InstancePhaseRunning",
                "InstancePhaseSucceeded",
                "InstancePhaseFailed",
                "InstancePhaseCanceled"
            ]
        },
        "operation.ListActionResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/operation.ActionMetadata"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "operation.ListInstanceResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/operation.Instance"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "operation.ListOperationCategoryResp": {
            "type": "object",
            "properties": {
                "categories": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "operation.ListOperationResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/operation.Operation"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "operation.Operation": {
            "type": "object",
            "properties": {
                "actions": {
                    "description": "Actions is actions be executed in an operation.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/operation.OperationAction"
                    }
                },
                "alias": {
                    "description": "Alias is the shown name of an operation when creating.",
                    "type": "string"
                },
                "approval_cc": {
                    "description": "ApprovalCC defines who can receive the approval cc after approved.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/operation.OperationApprover"
                        }
                    ]
                },
                "approval_tips": {
                    "description": "ApprovalTips is the text shown on approval page.",
                    "type": "string"
                },
                "approvers": {
                    "description": "Approver defines who can approve this operation.\nThe index of array is the level of approver, max is 3.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/operation.OperationApprover"
                    }
                },
                "categories": {
                    "description": "Categories is the category of an operation.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "description": {
                    "description": "Description is the description of an operation.",
                    "type": "string"
                },
                "internal": {
                    "description": "Internal means this operation is internal and only created by system.\nIt will not be shown on UI when internal is true.",
                    "type": "boolean"
                },
                "name": {
                    "description": "Name is the unique identifier of an operation.",
                    "type": "string"
                },
                "params": {
                    "description": "Params is params of an operation, it will be used in actions.",
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/operation.ParamDefine"
                    }
                },
                "target": {
                    "description": "Target is the target of an operation.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/operation.OperationTarget"
                        }
                    ]
                }
            }
        },
        "operation.OperationAction": {
            "type": "object",
            "properties": {
                "name": {
                    "description": "Name is the action name.",
                    "type": "string"
                },
                "optional": {
                    "description": "Optional means this action is optional.",
                    "type": "boolean"
                },
                "prefer_schedule_hour": {
                    "description": "PreferScheduleHour is the default schedule hour, and the schedule time is `now()+hour` when shown on UI.",
                    "type": "integer"
                },
                "prefer_start_policy": {
                    "description": "PreferStartPolicy is the default start policy when shown on UI.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/operation.ActionStartPolicy"
                        }
                    ]
                }
            }
        },
        "operation.OperationApprover": {
            "type": "object",
            "properties": {
                "applicant_leader": {
                    "description": "The applicant leader is approver",
                    "type": "boolean"
                },
                "emails": {
                    "description": "Emails of approvers",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "from_param": {
                    "description": "The approver is generated from param",
                    "allOf": [
                        {
                            "$ref": "#/definitions/operation.OperationApproverForParam"
                        }
                    ]
                },
                "user_group": {
                    "description": "User group of approvers, defined in user service",
                    "type": "string"
                }
            }
        },
        "operation.OperationApproverForParam": {
            "type": "object",
            "properties": {
                "param_name": {
                    "description": "The name of param",
                    "allOf": [
                        {
                            "$ref": "#/definitions/operation.ParamName"
                        }
                    ]
                },
                "param_value_mapping": {
                    "description": "The value of param to approver",
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/operation.OperationApprover"
                    }
                }
            }
        },
        "operation.OperationTarget": {
            "type": "string",
            "enum": [
                "cluster",
                "tenant",
                "undefined"
            ],
            "x-enum-varnames": [
                "OperationTargetCluster",
                "OperationTargetTenant",
                "OperationTargetUndefined"
            ]
        },
        "operation.ParamDefine": {
            "type": "object",
            "properties": {
                "const": {
                    "description": "Const is the const value of the param.",
                    "type": "string"
                },
                "default": {
                    "description": "Default is the default value of the param.",
                    "type": "string"
                },
                "desc": {
                    "description": "Description is the description of the param.",
                    "type": "string"
                },
                "enum": {
                    "description": "Enum is the enum value of the param.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "multi_enum": {
                    "description": "MultiEnum is the multi enum value of the param.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "optional": {
                    "description": "Optional is whether this param is optional.",
                    "type": "boolean"
                },
                "type": {
                    "$ref": "#/definitions/operation.ParamType"
                }
            }
        },
        "operation.ParamName": {
            "type": "string",
            "enum": [
                "cluster_id",
                "project_id",
                "tenant_id",
                "tenant_region",
                "oncall_category",
                "plane_type",
                "cluster_components_to_scale",
                "tidb_node_quota",
                "tikv_node_quota",
                "tiflash_node_quota",
                "jump_auth_id",
                "configuration_change_id",
                "secondary_confirm_link",
                "force_restart",
                "restart_target",
                "restart_target_type",
                "component_type",
                "node_size",
                "replicas",
                "storage_size_gi"
            ],
            "x-enum-comments": {
                "ParamClusterComponentsToScale": "value: ClusterComponentsToScale, used by scale cluster",
                "ParamClusterID": "value: uint64",
                "ParamConfigurationChangeID": "value: uint64",
                "ParamForceRestart": "value: string",
                "ParamJumpAuthorizationID": "value: uint64",
                "ParamOncallCategory": "value: string",
                "ParamPlaneType": "value: string, ex: control_plane, data_plane",
                "ParamProjectID": "value: uint64",
                "ParamRestartTarget": "value: string",
                "ParamRestartTargetType": "value: string",
                "ParamSecondaryConfirmLink": "value: string, generated by gitops, and you can get it from github PR comment",
                "ParamTenantID": "value: uint64",
                "ParamTenantRegion": "value: TenantRegion, ex: APAC",
                "ParamTiDBNodeQuota": "value: int, used by update tenant quota",
                "ParamTiFlashNodeQuota": "value: int, used by update tenant quota",
                "ParamTiKVNodeQuota": "value: int, used by update tenant quota"
            },
            "x-enum-varnames": [
                "ParamClusterID",
                "ParamProjectID",
                "ParamTenantID",
                "ParamTenantRegion",
                "ParamOncallCategory",
                "ParamPlaneType",
                "ParamClusterComponentsToScale",
                "ParamTiDBNodeQuota",
                "ParamTiKVNodeQuota",
                "ParamTiFlashNodeQuota",
                "ParamJumpAuthorizationID",
                "ParamConfigurationChangeID",
                "ParamSecondaryConfirmLink",
                "ParamForceRestart",
                "ParamRestartTarget",
                "ParamRestartTargetType",
                "ParamComponentType",
                "ParamNodeSize",
                "ParamReplicas",
                "ParamStorageSizeGi"
            ]
        },
        "operation.ParamType": {
            "type": "string",
            "enum": [
                "string",
                "int"
            ],
            "x-enum-varnames": [
                "ParamTypeString",
                "ParamTypeInt"
            ]
        },
        "rbac.CreateRoleReq": {
            "type": "object",
            "required": [
                "name",
                "privileges"
            ],
            "properties": {
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "privileges": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.Privilege"
                    }
                }
            }
        },
        "rbac.GenerateAPIKeyReq": {
            "type": "object",
            "required": [
                "comment",
                "owner"
            ],
            "properties": {
                "comment": {
                    "type": "string"
                },
                "owner": {
                    "type": "string"
                }
            }
        },
        "rbac.GenerateAPIKeyResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "k": {
                    "type": "string"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "rbac.GetRoleResp": {
            "type": "object",
            "required": [
                "name",
                "privileges"
            ],
            "properties": {
                "description": {
                    "type": "string"
                },
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "privileges": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.Privilege"
                    }
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "rbac.ListRolesResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.Role"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "rbac.UpdateRoleReq": {
            "type": "object",
            "required": [
                "name",
                "privileges"
            ],
            "properties": {
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "privileges": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.Privilege"
                    }
                }
            }
        },
        "release.ChangeDeployArgoCD": {
            "type": "object",
            "properties": {
                "deploy_prs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/release.GithubPR"
                    }
                }
            }
        },
        "release.ChangeDeployInfo": {
            "type": "object",
            "properties": {
                "argocd": {
                    "$ref": "#/definitions/release.ChangeDeployArgoCD"
                },
                "manual": {
                    "$ref": "#/definitions/release.ChangeDeployManual"
                }
            }
        },
        "release.ChangeDeployManual": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                }
            }
        },
        "release.ChangeTier": {
            "type": "string",
            "enum": [
                "dedicated",
                "serverless"
            ],
            "x-enum-varnames": [
                "ChangeTierDedicated",
                "ChangeTierServerless"
            ]
        },
        "release.CloseChangeReq": {
            "type": "object",
            "required": [
                "result",
                "summary"
            ],
            "properties": {
                "result": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeResult"
                },
                "summary": {
                    "type": "string"
                }
            }
        },
        "release.CreateChangeReq": {
            "type": "object",
            "required": [
                "application_name",
                "name",
                "release_id",
                "risk_level",
                "tier",
                "window_end_at",
                "window_start_at"
            ],
            "properties": {
                "application_name": {
                    "type": "string"
                },
                "change_item_names": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "deployments": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/release.Deployment"
                    }
                },
                "is_draft": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "need_outage": {
                    "type": "boolean"
                },
                "note": {
                    "type": "string"
                },
                "release_id": {
                    "type": "integer"
                },
                "risk_level": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.RiskLevel"
                },
                "rollback_plan": {
                    "type": "string"
                },
                "staging_test_report": {
                    "type": "string"
                },
                "tier": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/release.ChangeTier"
                    }
                },
                "type": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeType"
                },
                "window_end_at": {
                    "type": "integer"
                },
                "window_start_at": {
                    "type": "integer"
                }
            }
        },
        "release.CreateChangeResp": {
            "type": "object",
            "properties": {
                "change_id": {
                    "type": "integer"
                },
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "release.DefaultChangeResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "trace_id": {
                    "type": "string"
                },
                "window_end_at": {
                    "type": "integer"
                },
                "window_start_at": {
                    "type": "integer"
                }
            }
        },
        "release.Deployment": {
            "type": "object",
            "required": [
                "deploy_method",
                "order",
                "regions"
            ],
            "properties": {
                "deploy_cd_link": {
                    "type": "string"
                },
                "deploy_description": {
                    "type": "string"
                },
                "deploy_method": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeDeployMethod"
                },
                "order": {
                    "type": "integer"
                },
                "regions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/release.RegionName"
                    }
                }
            }
        },
        "release.ExecuteDeploymentReq": {
            "type": "object",
            "properties": {
                "force": {
                    "type": "boolean"
                }
            }
        },
        "release.GetChangeResp": {
            "type": "object",
            "properties": {
                "change": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.Change"
                },
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "release_tickets": {
                    "description": "FIXME: remove this hack, required by FE now.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ReleaseTicket"
                    }
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "release.GetReleaseResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "release": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.Release"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "release.GetTicketResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "ticket": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ReleaseTicket"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "release.GithubPR": {
            "type": "object",
            "properties": {
                "link": {
                    "type": "string"
                },
                "pr_number": {
                    "type": "integer"
                },
                "repo_name": {
                    "type": "string"
                },
                "repo_owner": {
                    "type": "string"
                }
            }
        },
        "release.IsDeploymentReadyResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "is_ready": {
                    "type": "boolean"
                },
                "reasons": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "release.ListChangeResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_api_release.Change"
                    }
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "release.ListReleaseResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.Release"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "release.ListTicketsResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ReleaseTicket"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "release.RegionName": {
            "type": "string",
            "enum": [
                "us-west1",
                "us-west-2"
            ],
            "x-enum-varnames": [
                "RegionNameGCPUsWest1",
                "RegionNameAWSUsWest2"
            ]
        },
        "release.UpdateChangeReq": {
            "type": "object",
            "properties": {
                "change_item_names": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "deployments": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/release.Deployment"
                    }
                },
                "name": {
                    "type": "string"
                },
                "need_outage": {
                    "type": "boolean"
                },
                "note": {
                    "type": "string"
                },
                "regions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/release.RegionName"
                    }
                },
                "risk_level": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.RiskLevel"
                },
                "rollback_plan": {
                    "type": "string"
                },
                "staging_test_report": {
                    "type": "string"
                },
                "tier": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/release.ChangeTier"
                    }
                },
                "type": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_release.ChangeType"
                },
                "window_end_at": {
                    "type": "integer"
                },
                "window_start_at": {
                    "type": "integer"
                }
            }
        },
        "release.UpdateTicketReq": {
            "type": "object",
            "properties": {
                "github_pr_locations": {
                    "description": "ex: tidbcloud/devops#1",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "release.VerifyDeploymentReq": {
            "type": "object",
            "properties": {
                "note": {
                    "type": "string"
                }
            }
        },
        "secondaryconfirm.ApplyReq": {
            "type": "object",
            "properties": {
                "apply_strategy": {
                    "$ref": "#/definitions/entity.ApplyStrategy"
                },
                "cluster_id": {
                    "type": "string"
                },
                "config_revision_id": {
                    "type": "string"
                },
                "created_time": {
                    "type": "integer"
                },
                "project_id": {
                    "type": "string"
                }
            }
        },
        "secondaryconfirm.DiffResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "secondary": {
                    "$ref": "#/definitions/entity.SecondaryConfirmInRepo"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "secondaryconfirm.ListResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "history_secondarys": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.SecondaryConfirmInRepo"
                    }
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "tenant.AddImpersonateReq": {
            "type": "object",
            "required": [
                "expire_at",
                "reason",
                "tenant_id"
            ],
            "properties": {
                "expire_at": {
                    "type": "integer"
                },
                "reason": {
                    "type": "string"
                },
                "tenant_id": {
                    "type": "string",
                    "example": "0"
                }
            }
        },
        "tenant.AddImpersonateResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "instance_id": {
                    "description": "the operation instance id",
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "tenant.GetImpersonateResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "instance_id": {
                    "description": "the operation instance id",
                    "type": "integer"
                },
                "tenant_id": {
                    "description": "impersonating tenant id for the user",
                    "type": "string",
                    "example": "0"
                },
                "trace_id": {
                    "type": "string"
                },
                "user": {
                    "type": "string"
                }
            }
        },
        "tenant.GetTenantResp": {
            "type": "object",
            "properties": {
                "alias": {
                    "type": "string"
                },
                "country": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "customer_id": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "id": {
                    "type": "string",
                    "example": "0"
                },
                "kind": {
                    "$ref": "#/definitions/entity.TenantKind"
                },
                "name": {
                    "type": "string"
                },
                "plan": {
                    "$ref": "#/definitions/entity.TenantPlan"
                },
                "region": {
                    "$ref": "#/definitions/entity.TenantRegion"
                },
                "sales_owner_email": {
                    "type": "string"
                },
                "segmentation": {
                    "$ref": "#/definitions/entity.TenantSegmentation"
                },
                "status": {
                    "$ref": "#/definitions/entity.TenantStatus"
                },
                "time_zone": {
                    "type": "string"
                }
            }
        },
        "tenant.ListTenantResp": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/tenant.Tenant"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "tenant.OrderType": {
            "type": "string",
            "enum": [
                "asc",
                "desc"
            ],
            "x-enum-varnames": [
                "OrderTypeASC",
                "OrderTypeDESC"
            ]
        },
        "tenant.SortByType": {
            "type": "string",
            "enum": [
                "created_at",
                "timezone"
            ],
            "x-enum-varnames": [
                "SortByTypeCreatedAt",
                "SortByTypeTimezone"
            ]
        },
        "tenant.Tenant": {
            "type": "object",
            "properties": {
                "alias": {
                    "type": "string"
                },
                "country": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "customer_id": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "id": {
                    "type": "string",
                    "example": "0"
                },
                "kind": {
                    "$ref": "#/definitions/entity.TenantKind"
                },
                "name": {
                    "type": "string"
                },
                "plan": {
                    "$ref": "#/definitions/entity.TenantPlan"
                },
                "region": {
                    "$ref": "#/definitions/entity.TenantRegion"
                },
                "sales_owner_email": {
                    "type": "string"
                },
                "segmentation": {
                    "$ref": "#/definitions/entity.TenantSegmentation"
                },
                "status": {
                    "$ref": "#/definitions/entity.TenantStatus"
                },
                "time_zone": {
                    "type": "string"
                }
            }
        },
        "user.CreateGroupReq": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "user.DeleteGroupReq": {
            "type": "object",
            "properties": {
                "force": {
                    "type": "boolean"
                }
            }
        },
        "user.GetGroupResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "group": {
                    "$ref": "#/definitions/entity.UserGroup"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "user.GetUserResp": {
            "type": "object",
            "properties": {
                "available": {
                    "type": "boolean"
                },
                "delete_at": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "github_id": {
                    "description": "empty means unset",
                    "type": "string"
                },
                "lark_department_id": {
                    "type": "string"
                },
                "lark_department_name": {
                    "type": "string"
                },
                "lark_type": {
                    "$ref": "#/definitions/entity.LarkType"
                },
                "lark_user_id": {
                    "type": "string"
                },
                "lark_user_name": {
                    "type": "string"
                },
                "role_ids": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        "user.ListGroupsResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.UserGroup"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "user.ListUserResp": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/user.User"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "user.MapUsersToGroupReq": {
            "type": "object",
            "required": [
                "group_name",
                "user_emails"
            ],
            "properties": {
                "group_name": {
                    "type": "string"
                },
                "user_emails": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "user.RegionInfo": {
            "type": "object",
            "properties": {
                "global": {
                    "type": "boolean"
                },
                "regions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.TenantRegion"
                    }
                }
            }
        },
        "user.UnmapUsersFromGroupReq": {
            "type": "object",
            "required": [
                "group_name",
                "user_emails"
            ],
            "properties": {
                "group_name": {
                    "type": "string"
                },
                "user_emails": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "user.UpdateGroupReq": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                }
            }
        },
        "user.UpdateUserRoleBindingsReq": {
            "type": "object",
            "required": [
                "email",
                "role_ids"
            ],
            "properties": {
                "email": {
                    "type": "string"
                },
                "role_ids": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        "user.User": {
            "type": "object",
            "properties": {
                "available": {
                    "type": "boolean"
                },
                "delete_at": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "github_id": {
                    "description": "empty means unset",
                    "type": "string"
                },
                "lark_department_id": {
                    "type": "string"
                },
                "lark_department_name": {
                    "type": "string"
                },
                "lark_type": {
                    "$ref": "#/definitions/entity.LarkType"
                },
                "lark_user_id": {
                    "type": "string"
                },
                "lark_user_name": {
                    "type": "string"
                },
                "role_ids": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        "user.UserProfileResp": {
            "type": "object",
            "properties": {
                "email": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "region_info": {
                    "$ref": "#/definitions/user.RegionInfo"
                },
                "roles": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "userbehavior.AddExternalLarkChatReq": {
            "type": "object",
            "required": [
                "chat_url",
                "name"
            ],
            "properties": {
                "avatar": {
                    "type": "string"
                },
                "chat_url": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "userbehavior.CreateSubscriptionReq": {
            "type": "object",
            "properties": {
                "event_type": {
                    "$ref": "#/definitions/userbehavior.UBEventTp"
                },
                "lark_chats": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.LarkChatSimplified"
                    }
                },
                "name": {
                    "type": "string"
                },
                "selector": {
                    "$ref": "#/definitions/userbehavior.SelectorTp"
                },
                "subscribe_type": {
                    "$ref": "#/definitions/userbehavior.SubscribeTp"
                },
                "template": {
                    "type": "string"
                }
            }
        },
        "userbehavior.CreateSubscriptionResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "subscription_id": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "userbehavior.EditSubscriptionReq": {
            "type": "object",
            "properties": {
                "event_type": {
                    "$ref": "#/definitions/userbehavior.UBEventTp"
                },
                "lark_chats": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.LarkChatSimplified"
                    }
                },
                "name": {
                    "type": "string"
                },
                "selector": {
                    "$ref": "#/definitions/userbehavior.SelectorTp"
                },
                "subscribe_type": {
                    "$ref": "#/definitions/userbehavior.SubscribeTp"
                },
                "template": {
                    "type": "string"
                }
            }
        },
        "userbehavior.EditSubscriptionResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "subscription_id": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "userbehavior.GetSubscriptionResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "subscription": {
                    "$ref": "#/definitions/github_com_tidbcloud_devops_entity_userbehavior.Subscription"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "userbehavior.ListLarkChatOptionsResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.LarkChatSimplified"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "userbehavior.ListSubscriptionsResp": {
            "type": "object",
            "properties": {
                "errcode": {
                    "$ref": "#/definitions/api.ErrCode"
                },
                "errmsg": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_tidbcloud_devops_entity_userbehavior.Subscription"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "trace_id": {
                    "type": "string"
                }
            }
        },
        "userbehavior.RegionSelectorTp": {
            "type": "string",
            "enum": [
                "na",
                "apac",
                "emea",
                "jp"
            ],
            "x-enum-varnames": [
                "RegionSelectorNA",
                "RegionSelectorAPAC",
                "RegionSelectorEMEA",
                "RegionSelectorJP"
            ]
        },
        "userbehavior.SelectorTp": {
            "type": "object",
            "properties": {
                "region_selectors": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/userbehavior.RegionSelectorTp"
                    }
                },
                "tenant_selectors": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "userbehavior.SubscribeTp": {
            "type": "string",
            "enum": [
                "by_chat"
            ],
            "x-enum-varnames": [
                "SubscribeByChat"
            ]
        },
        "userbehavior.UBEventTp": {
            "type": "string",
            "enum": [
                "tenant",
                "cluster"
            ],
            "x-enum-comments": {
                "UBEventTenant": "tenant creation, deletion and plan change"
            },
            "x-enum-varnames": [
                "UBEventTenant",
                "UBEventCluster"
            ]
        }
    }
}