// Package docs GENERATED BY SWAG; DO NOT EDIT
// This file was generated by swaggo/swag
package docs

import "github.com/swaggo/swag"

const docTemplate = `{
    "schemes": {{ marshal .Schemes }},
    "swagger": "2.0",
    "info": {
        "description": "{{escape .Description}}",
        "title": "{{.Title}}",
        "contact": {},
        "version": "{{.Version}}"
    },
    "host": "{{.Host}}",
    "basePath": "{{.BasePath}}",
    "paths": {
        "/case-executions": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "case-execution"
                ],
                "summary": "List recent case-executions (order by updated time desc)",
                "operationId": "list-case-executions",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Filter by root_plan_id",
                        "name": "root_plan_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by root_plan_exec_id",
                        "name": "root_plan_exec_id",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by case execution ids",
                        "name": "ids",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by case ids",
                        "name": "case_ids",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "PENDING",
                            "RUNNING",
                            "SUCCESS",
                            "FAILURE",
                            "SKIPPED",
                            "TIMEOUT",
                            "CANCELLED",
                            "ERROR"
                        ],
                        "type": "string",
                        "description": "Filter by status",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "default": 0,
                        "description": "Offset/skip number of case-executions",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 20,
                        "description": "Number of case-executions returned",
                        "name": "count",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "format": "2006-01-02",
                        "description": "Filter by StartedAt, choose by Asia/Shanghai date. format(2006-01-02)",
                        "name": "date",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.CaseExecutionListResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "case-execution"
                ],
                "summary": "Create new case-execution",
                "operationId": "create-case-execution",
                "parameters": [
                    {
                        "description": "CaseExecution to create",
                        "name": "case-execution",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/request.CaseExecutionCreateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestCaseExecution"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/case-executions/triages": {
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "case-execution"
                ],
                "summary": "create case triage",
                "parameters": [
                    {
                        "description": "CaseTriage to create",
                        "name": "triage",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.CaseTriage"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/case-executions/{id}": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "case-execution"
                ],
                "summary": "Get case-execution by ID",
                "operationId": "get-case-execution",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "CaseExecution ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestCaseExecution"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "case-execution"
                ],
                "summary": "Update an existing case-execution, can not update if the execution's status is already not PENDING or RUNNING",
                "operationId": "update-case-execution",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "CaseExecution ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "CaseExecution to update",
                        "name": "case-execution",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/request.CaseExecutionUpdateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestCaseExecution"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/case-executions/{id}/note": {
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "case-execution"
                ],
                "summary": "Update an case-execution note.",
                "operationId": "update-case-execution-note",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "CaseExecution ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "the note",
                        "name": "note",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/request.ExecutionNoteUpdateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/case-executions/{id}/reason": {
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "case-execution"
                ],
                "summary": "Update an case-execution reason.",
                "operationId": "update-case-execution-reason",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "CaseExecution ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "the reason",
                        "name": "reason",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/request.ExecutionReasonUpdateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/case-executions/{id}/triage": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "case-execution"
                ],
                "summary": "get case triage by case-executions id",
                "operationId": "get-case-triage",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Triage CaseExecutionID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.CaseTriage"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "case-execution"
                ],
                "summary": "update case triage by case-executions id",
                "operationId": "update-case-triage",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Triage CaseExecutionsID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "CaseTriage to update",
                        "name": "triage",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/request.CaseTriageUpdateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/case-executions/{id}/triage/fork": {
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan-execution"
                ],
                "summary": "update triage by plan-executions id",
                "operationId": "fork-case-triage",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Triage CaseExecutionID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "lease to set",
                        "name": "from",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.CaseTriage"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/case-executions/{id}/triage/suggest": {
            "get": {
                "tags": [
                    "case-execution"
                ],
                "summary": "get case triage suggestions by case-executions id",
                "operationId": "suggest-case-triage",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Triage CaseExecutionID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/model.CaseTriage"
                            }
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/cases": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "case"
                ],
                "summary": "List recent cases order by updated time desc (default not to return all fields).",
                "operationId": "list-cases",
                "parameters": [
                    {
                        "maxLength": 255,
                        "minLength": 1,
                        "type": "string",
                        "description": "Search by query, all but query and tags are ignored",
                        "name": "query",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by tags label",
                        "name": "tags",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by case ids",
                        "name": "ids",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by case names",
                        "name": "names",
                        "in": "query"
                    },
                    {
                        "maxLength": 255,
                        "minLength": 1,
                        "type": "string",
                        "description": "Search by designer email",
                        "name": "designer",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Export as tcctl format",
                        "name": "tcctl",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Export all case fields",
                        "name": "allFields",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "default": 0,
                        "description": "Offset/skip number of cases",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 20,
                        "description": "Number of cases returned",
                        "name": "count",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.CaseSearchResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "case"
                ],
                "summary": "Create new case",
                "operationId": "create-case",
                "parameters": [
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "Dry run",
                        "name": "dryrun",
                        "in": "query",
                        "required": true
                    },
                    {
                        "description": "Case to create",
                        "name": "case",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/request.CaseCreateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestCase"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/cases/autocomplete": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "case"
                ],
                "summary": "Auto complete case by name.",
                "operationId": "autocomplete-case",
                "parameters": [
                    {
                        "maxLength": 255,
                        "minLength": 1,
                        "type": "string",
                        "description": "Filter by query",
                        "name": "query",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 10,
                        "description": "Number of items returned",
                        "name": "count",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.CaseListResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/cases/{id}": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "case"
                ],
                "summary": "Get case by ID",
                "operationId": "get-case",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Case ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Get case of this revision. You can view all revisions in /cases/{id}/histories.",
                        "name": "revision",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Get case of the most recently revision which was created before ts, RFC3339Nano format, e.g. 2022-02-01T16:09:53+08:00",
                        "name": "ts",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Export as tcctl format",
                        "name": "tcctl",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestCase"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "case"
                ],
                "summary": "Override an existing case",
                "operationId": "update-case",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Case ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Case to override",
                        "name": "case",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/request.CaseUpdateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestCase"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "case"
                ],
                "summary": "Delete an existing case",
                "operationId": "delete-case",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Case ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/cases/{id}/histories": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "case"
                ],
                "summary": "List case histories by ID.",
                "operationId": "list-case-histories",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Case ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Get case history after the ts. RFC3339Nano format, e.g. 2022-02-01T13:09:53+08:00",
                        "name": "from_ts",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Get case history before the ts, RFC3339Nano format, e.g. 2022-02-01T16:09:53+08:00",
                        "name": "to_ts",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "default": 0,
                        "description": "Offset/skip number of items",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 20,
                        "description": "Number of items returned",
                        "name": "count",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/model.HistoryRecord"
                            }
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/config": {
            "get": {
                "tags": [
                    "config"
                ],
                "summary": "Get configs like supported execution fail reasons.",
                "operationId": "get-remote-configs",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/dailyci": {
            "get": {
                "produces": [
                    "application/xml"
                ],
                "tags": [
                    "dailyci"
                ],
                "summary": "Returns JUnit report of executions.",
                "operationId": "get-dailyci-report",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "id",
                        "name": "id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "main",
                        "description": "Filter by git branch",
                        "name": "branch",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by plans",
                        "name": "plans",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/formatter.JUnitTestSuites"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/dailyci/trigger": {
            "post": {
                "tags": [
                    "dailyci"
                ],
                "summary": "Trigger daily tests (Used by dailyci).",
                "operationId": "trigger-daily-tests-by-dailyci",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.TriggerTestsResp"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/dailyci/trigger/{id}": {
            "get": {
                "tags": [
                    "dailyci"
                ],
                "summary": "Trigger daily tests (Used by dailyci).",
                "operationId": "get-trigger-status-for-dailyci",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "id",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.GetTriggerStatusForDailyCIResp"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plan-executions": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan-execution"
                ],
                "summary": "List recent plan-executions (order by created time desc)",
                "operationId": "list-plan-executions",
                "parameters": [
                    {
                        "maxLength": 255,
                        "minLength": 1,
                        "type": "string",
                        "description": "Search by query",
                        "name": "query",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by creator or maintainer",
                        "name": "email",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by plan execution ids",
                        "name": "ids",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by plan ids",
                        "name": "plan_ids",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by trigger ids, can only choose one between plan_ids and trigger_ids",
                        "name": "trigger_ids",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "PENDING",
                            "RUNNING",
                            "SUCCESS",
                            "FAILURE",
                            "SKIPPED",
                            "TIMEOUT",
                            "CANCELLED",
                            "ERROR"
                        ],
                        "type": "string",
                        "description": "Filter by status",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "TO_TRIAGE",
                            "TRIAGING",
                            "TRIAGED"
                        ],
                        "type": "string",
                        "description": "Filter by triage_phase",
                        "name": "triage_phase",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by resourcePool",
                        "name": "resource_pool_id",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Filter plan-execution has living testbeds",
                        "name": "has_living_testbed",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Filter cron plan-execution",
                        "name": "cron",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "default": 0,
                        "description": "Offset/skip number of plan-executions",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 20,
                        "description": "Number of plan-executions returned",
                        "name": "count",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "format": "2006-01-02",
                        "description": "Filter by StartedAt, choose by Asia/Shanghai date. format(2006-01-02)",
                        "name": "date",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.PlanExecutionSearchResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plan-executions/cancel": {
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan-execution"
                ],
                "summary": "Cancel pending plan-executions.",
                "operationId": "cancel-plan-execution",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "csv",
                        "description": "Execution IDs",
                        "name": "ids",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plan-executions/{id}": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan-execution"
                ],
                "summary": "Get plan-execution by ID",
                "operationId": "get-plan-execution",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "PlanExecution ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestPlanExecution"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan-execution"
                ],
                "summary": "Update an existing plan-execution, can not update if the execution's status is already not PENDING or RUNNING",
                "operationId": "update-plan-execution",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "PlanExecution ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "PlanExecution to update",
                        "name": "plan-execution",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/request.PlanExecutionUpdateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestPlanExecution"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plan-executions/{id}/note": {
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan-execution"
                ],
                "summary": "Update an plan-execution note.",
                "operationId": "update-plan-execution-note",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "PlanExecution ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "the note",
                        "name": "note",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/request.ExecutionNoteUpdateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plan-executions/{id}/plan": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan-execution"
                ],
                "summary": "Get plan rendered by plan-execution",
                "operationId": "get-plan-by-plan-execution",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "PlanExecution ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestPlan"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plan-executions/{id}/reason": {
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan-execution"
                ],
                "summary": "Update an plan-execution reason.",
                "operationId": "update-plan-execution-reason",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "PlanExecution ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "reason",
                        "name": "reason",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/request.ExecutionReasonUpdateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plan-executions/{id}/rerun": {
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan-execution"
                ],
                "summary": "Rerun the plan-execution.",
                "operationId": "rerun-plan-execution",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Execution ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "Only rerun failed steps (default to rerun all steps, include success)",
                        "name": "only_failed",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plan-executions/{id}/resource-duration": {
            "get": {
                "tags": [
                    "plan-execution"
                ],
                "summary": "get ResourceDuration by plan-executions id",
                "operationId": "get-resource-duration",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "ResourceDuration's PlanExecutionID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/model.ResourceDuration"
                            }
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plan-executions/{id}/testbeds": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan-execution"
                ],
                "summary": "List testbeds of a plan-execution.",
                "operationId": "list-plan-execution-testbed",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Plan execution id",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestBedInfoListResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plan-executions/{id}/testbeds/{name}": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan-execution"
                ],
                "summary": "Release an alive testbed",
                "operationId": "get-testbed",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "testbed's plan_exec_id",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "testbed name",
                        "name": "name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "description": "refresh testbed with resource details",
                        "name": "with_resource_details",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestBedInfo"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plan-executions/{id}/testbeds/{name}/info/status": {
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan-execution"
                ],
                "summary": "Update testbed's dynamic info (such as tidb url/ prom url etc.)",
                "operationId": "update-testbed",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "testbed's plan_exec_id",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "testbed name",
                        "name": "name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "{'INITIATING', 'READY', 'RELEASED', 'ERROR'}",
                        "name": "status",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "timestamp when InitiatedAt",
                        "name": "initiated_at",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "URL to get testbed setup log",
                        "name": "setup_log_url",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plan-executions/{id}/testbeds/{name}/release": {
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan-execution"
                ],
                "summary": "Release an alive testbed",
                "operationId": "release-testbed",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "testbed's plan_exec_id",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "testbed name",
                        "name": "name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestBedInfo"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plan-executions/{id}/testbeds/{name}/renew": {
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan-execution"
                ],
                "summary": "Release an alive testbed",
                "operationId": "renew-testbed",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "testbed's plan_exec_id",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "testbed name",
                        "name": "name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "lease to set",
                        "name": "lease",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestBedInfo"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plan-executions/{id}/testbeds/{name}/restore-monitor": {
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan-execution"
                ],
                "summary": "RestoreMonitor of a dead testbed",
                "operationId": "restore-monitor",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "testbed's plan_exec_id",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "testbed name",
                        "name": "name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestBedInfo"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plan-executions/{id}/triage": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan-execution"
                ],
                "summary": "get triage by plan-executions id",
                "operationId": "get-triage",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Triage PlanExecutionID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.Triage"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan-execution"
                ],
                "summary": "update triage by plan-executions id",
                "operationId": "update-triage",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Triage PlanExecutionsID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "PlanTriage to update",
                        "name": "triage",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/request.PlanTriageUpdateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plans": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan"
                ],
                "summary": "List recent plans (order by updated time desc)",
                "operationId": "list-plans",
                "parameters": [
                    {
                        "maxLength": 255,
                        "minLength": 1,
                        "type": "string",
                        "description": "Search by query, all but query and tags are ignored",
                        "name": "query",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by plan ids",
                        "name": "ids",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "GENERAL",
                            "GITHUB",
                            "ONE_SHOT"
                        ],
                        "type": "string",
                        "description": "Filter by plan type",
                        "name": "type",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by GitHub branch",
                        "name": "branch",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "default": 0,
                        "description": "Offset/skip number of plans",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 20,
                        "description": "Number of plans returned",
                        "name": "count",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.PlanListResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan"
                ],
                "summary": "Create new plan (For Github plan, see ` + "`" + `CreateGitHubPlan` + "`" + ` in ` + "`" + `plan_github.go` + "`" + `)",
                "operationId": "create-plan",
                "parameters": [
                    {
                        "description": "Plan to create",
                        "name": "plan",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/request.PlanCreateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.PlanCreateResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plans/autocomplete": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan"
                ],
                "summary": "Auto complete plan by name.",
                "operationId": "autocomplete-plan",
                "parameters": [
                    {
                        "enum": [
                            "GENERAL",
                            "GITHUB",
                            "ONE_SHOT"
                        ],
                        "type": "string",
                        "default": "GENERAL",
                        "description": "Filter by plan type",
                        "name": "type",
                        "in": "query"
                    },
                    {
                        "maxLength": 255,
                        "minLength": 1,
                        "type": "string",
                        "description": "Filter by query",
                        "name": "query",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 10,
                        "description": "Number of items returned",
                        "name": "count",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestPlan"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plans/branchs": {
            "get": {
                "tags": [
                    "plan"
                ],
                "summary": "Returns all active branchs in GitHub repo.",
                "operationId": "list-ghplan-branchs",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Filter by branch prefix",
                        "name": "prefix",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plans/release": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan"
                ],
                "summary": "List release plans (order by updated time desc)",
                "operationId": "list-release-plans",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "release trigger id",
                        "name": "triggerID",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by GitHub branch",
                        "name": "branch",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.ListReleasePlansResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/plans/{id}": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan"
                ],
                "summary": "Get plan by ID",
                "operationId": "get-plan",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Plan ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestPlan"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "plan"
                ],
                "summary": "Delete an existing plan (For Github plan, see ` + "`" + `DeleteOldGitHubPlans` + "`" + ` in ` + "`" + `plan_github.go` + "`" + `)",
                "operationId": "delete-plan",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Plan ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/resourcepool": {
            "get": {
                "tags": [
                    "resourcepool"
                ],
                "summary": "List ResourcePools",
                "operationId": "list-resourcepools",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Filter by rms_name",
                        "name": "rms_name",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Choose resourcepools in names",
                        "name": "names",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.ResourcePoolListResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "resourcepool"
                ],
                "summary": "Update ResourcePool",
                "operationId": "update-resourcepool",
                "parameters": [
                    {
                        "description": "ResourcePool to update",
                        "name": "resourcepool",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.ResourcePool"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "resourcepool"
                ],
                "summary": "Create ResourcePool",
                "operationId": "create-resourcepool",
                "parameters": [
                    {
                        "description": "ResourcePool to create",
                        "name": "resourcepool",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.ResourcePool"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.ResourcePool"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "resourcepool"
                ],
                "summary": "Delete an existing resourcepool",
                "operationId": "delete-resourcepool",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Filter by rms_name",
                        "name": "rms_name",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Choose resourcepools in names",
                        "name": "names",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/resourcepool/status": {
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "resourcepool"
                ],
                "summary": "Update ResourcePool",
                "operationId": "update-resourcepools-status",
                "parameters": [
                    {
                        "description": "ResourcePools with metrics to update",
                        "name": "resourcepools",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/request.ResourcePoolUpdateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.ResourcePoolListResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/rms": {
            "get": {
                "tags": [
                    "rms"
                ],
                "summary": "List RMSs",
                "operationId": "list-rms",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/model.RMS"
                            }
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "rms"
                ],
                "summary": "Update RMS",
                "operationId": "update-rms",
                "parameters": [
                    {
                        "description": "RMS to update",
                        "name": "rms",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.RMS"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "rms"
                ],
                "summary": "Create RMS",
                "operationId": "create-rms",
                "parameters": [
                    {
                        "description": "RMS to create",
                        "name": "rms",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.RMS"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.RMS"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/rms/:name": {
            "get": {
                "tags": [
                    "rms"
                ],
                "summary": "Get RMSs",
                "operationId": "get-rms",
                "parameters": [
                    {
                        "type": "string",
                        "description": "RMS name",
                        "name": "name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.RMS"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/summary": {
            "get": {
                "tags": [
                    "daily-summary"
                ],
                "summary": "Get Daily Summary By Date",
                "operationId": "get-daily-summary",
                "parameters": [
                    {
                        "type": "string",
                        "format": "2006-01-02",
                        "description": "Filter by date, choose by asia/shanghai date. format(2006-01-02)",
                        "name": "date",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.DailySummary"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/summary/release/:id": {
            "get": {
                "tags": [
                    "get-release-summary"
                ],
                "summary": "Get Release Summary",
                "operationId": "get-release-summary",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "release trigger id",
                        "name": "id",
                        "in": "path"
                    },
                    {
                        "enum": [
                            "TO_TRIAGE",
                            "TRIAGING",
                            "TRIAGED"
                        ],
                        "type": "string",
                        "description": "Filter by triage_phase",
                        "name": "triage_phase",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.GetReleaseSummaryResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/testbeds/info": {
            "get": {
                "tags": [
                    "testbed"
                ],
                "summary": "List testbeds",
                "operationId": "list-testbed",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by testbed names",
                        "name": "names",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by plan-execution id",
                        "name": "plan_exec_id",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "also show released testbeds",
                        "name": "show_released",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "default": 0,
                        "description": "Offset/skip number of testbeds",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 20,
                        "description": "Number of testbeds returned",
                        "name": "count",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestBedInfoListResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "testbed"
                ],
                "summary": "Create new testbed",
                "operationId": "create-testbed",
                "parameters": [
                    {
                        "description": "Testbed to create",
                        "name": "testbed",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.TestBedInfo"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestBedInfo"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/testbedsetups": {
            "get": {
                "tags": [
                    "testbed-setup"
                ],
                "summary": "List testbed-setup tasks",
                "operationId": "list-testbed-setup",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Filter by schedule.status",
                        "name": "scheduleStatus",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/taskruns.TestbedSetupList"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "testbed-setup"
                ],
                "summary": "Create new testbed-setup",
                "operationId": "create-testbed-setup",
                "parameters": [
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "Dry run",
                        "name": "dryrun",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "Dry run",
                        "name": "dryRun",
                        "in": "query"
                    },
                    {
                        "description": "testbed setup to create",
                        "name": "testbedSetup",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/taskruns.TestbedSetup"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/taskruns.TestbedSetup"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/testbedsetups/schedule-graph": {
            "get": {
                "produces": [
                    "text/html"
                ],
                "tags": [
                    "testbed-setup"
                ],
                "summary": "generate pending task graph",
                "operationId": "pending-testbed-setup-graph",
                "responses": {
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/testbedsetups/{id}": {
            "get": {
                "tags": [
                    "testbed-setup"
                ],
                "summary": "Get testbed-setup by ID",
                "operationId": "get-testbed-setup",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Case ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/taskruns.TestbedSetup"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/testbedsetups/{id}/status/report": {
            "put": {
                "tags": [
                    "testbed-setup"
                ],
                "summary": "update testbed-setup report status",
                "operationId": "update-testbed-setup-report",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "Dry run",
                        "name": "dryrun",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "Dry run",
                        "name": "dryRun",
                        "in": "query"
                    },
                    {
                        "description": "testbed-setup to update",
                        "name": "testbedSetup",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/taskruns.TestbedSetup"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/taskruns.TestbedSetup"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/testbedsetups/{id}/status/run": {
            "put": {
                "tags": [
                    "testbed-setup"
                ],
                "summary": "update testbed-setup run status",
                "operationId": "update-testbed-setup-run",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "Dry run",
                        "name": "dryrun",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "Dry run",
                        "name": "dryRun",
                        "in": "query"
                    },
                    {
                        "description": "testbed-setup to update",
                        "name": "testbedSetup",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/taskruns.TestbedSetup"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/taskruns.TestbedSetup"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/testbedsetups/{id}/status/schedule": {
            "put": {
                "tags": [
                    "testbed-setup"
                ],
                "summary": "update testbed-setup schedule status",
                "operationId": "update-testbed-setup-schedule",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "Dry run",
                        "name": "dryrun",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "Dry run",
                        "name": "dryRun",
                        "in": "query"
                    },
                    {
                        "description": "testbed-setup to update",
                        "name": "testbedSetup",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/taskruns.TestbedSetup"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/taskruns.TestbedSetup"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/tokens": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "token"
                ],
                "summary": "Create a personal access token.",
                "operationId": "list-tokens",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.PersonalAccessTokenInfoListResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "token"
                ],
                "summary": "Create a personal access token.",
                "operationId": "create-token",
                "parameters": [
                    {
                        "maxLength": 255,
                        "minLength": 1,
                        "type": "string",
                        "description": "Token name",
                        "name": "name",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "token"
                ],
                "summary": "Revokes user's tokens, revoke all tokens if ids is not specified.",
                "operationId": "revoke-token",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "csv",
                        "description": "Token ids",
                        "name": "ids",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/tokens/validate": {
            "get": {
                "tags": [
                    "token"
                ],
                "summary": "Validate token and return info",
                "operationId": "validate-token",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Personal access token",
                        "name": "token",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            "1"
                        ],
                        "type": "string",
                        "description": "Also return the user info",
                        "name": "user",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.PersonalAccessTokenInfo"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/triggers": {
            "get": {
                "tags": [
                    "trigger"
                ],
                "summary": "List recent triggers (order by updated time desc)",
                "operationId": "list-triggers",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Filter by plan ID",
                        "name": "plan_id",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "ONCE",
                            "CRON",
                            "RELEASE"
                        ],
                        "type": "string",
                        "description": "Filter by trigger type",
                        "name": "type",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by creator's ID",
                        "name": "creator",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by release branch",
                        "name": "release_branch",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "default": 0,
                        "description": "Offset/skip number of triggers",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 20,
                        "description": "Number of triggers returned",
                        "name": "count",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TriggerListResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "trigger"
                ],
                "summary": "Create new trigger",
                "operationId": "create-trigger",
                "parameters": [
                    {
                        "description": "Trigger to create",
                        "name": "trigger",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/request.TriggerCreateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestTrigger"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/triggers/autocomplete": {
            "get": {
                "tags": [
                    "trigger"
                ],
                "summary": "Auto complete trigger by name. This API only works on CRON trigger.",
                "operationId": "autocomplete-trigger",
                "parameters": [
                    {
                        "maxLength": 255,
                        "minLength": 1,
                        "type": "string",
                        "description": "Filter by query",
                        "name": "query",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            "CRON"
                        ],
                        "type": "string",
                        "default": "CRON",
                        "description": "Filter by type",
                        "name": "type",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 10,
                        "description": "Number of items returned",
                        "name": "count",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TriggerListResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/triggers/{id}": {
            "get": {
                "tags": [
                    "trigger"
                ],
                "summary": "Get trigger by ID",
                "operationId": "get-trigger",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Trigger ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TestTrigger"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "trigger"
                ],
                "summary": "Delete an existing trigger",
                "operationId": "delete-trigger",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Trigger ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/triggers/{id}/affected-version/cases": {
            "get": {
                "tags": [
                    "trigger"
                ],
                "summary": "Get Affected Version Summary.",
                "operationId": "get-affected-version-cases",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Trigger ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.GetAffectedVersionCasesResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/triggers/{id}/plan-ref": {
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "trigger"
                ],
                "summary": "Override an existing trigger's PlanRef",
                "operationId": "update-trigger-plan-ref",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Trigger ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "PlanIDs to override into PlanRef",
                        "name": "planIDs",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/request.UpdateTriggerPlanRefRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/users": {
            "get": {
                "tags": [
                    "user"
                ],
                "summary": "List users",
                "operationId": "list-users",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by user ids",
                        "name": "ids",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by user emails",
                        "name": "emails",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.UserListResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/users/autocomplete": {
            "get": {
                "tags": [
                    "user"
                ],
                "summary": "Auto complete user by email.",
                "operationId": "autocomplete-user",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Filter by query",
                        "name": "query",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 10,
                        "description": "Number of items returned",
                        "name": "count",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.UserListResponse"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/users/current": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "tags": [
                    "user"
                ],
                "summary": "Get current user",
                "operationId": "current-user",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.User"
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        },
        "/users/login/google-auth": {
            "get": {
                "tags": [
                    "user"
                ],
                "summary": "Login via Google OAuth2",
                "operationId": "login-google-auth",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Google OAuth id_token",
                        "name": "id_token",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/handler.HTTPError"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "formatter.JUnitFailure": {
            "type": "object",
            "properties": {
                "contents": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "formatter.JUnitProperty": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "formatter.JUnitSkipMessage": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "formatter.JUnitTestCase": {
            "type": "object",
            "properties": {
                "classname": {
                    "type": "string"
                },
                "failure": {
                    "$ref": "#/definitions/formatter.JUnitFailure"
                },
                "name": {
                    "type": "string"
                },
                "skipMessage": {
                    "$ref": "#/definitions/formatter.JUnitSkipMessage"
                },
                "time": {
                    "type": "string"
                },
                "xmlname": {
                    "$ref": "#/definitions/xml.Name"
                }
            }
        },
        "formatter.JUnitTestSuite": {
            "type": "object",
            "properties": {
                "failures": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "properties": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/formatter.JUnitProperty"
                    }
                },
                "testCases": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/formatter.JUnitTestCase"
                    }
                },
                "tests": {
                    "type": "integer"
                },
                "time": {
                    "type": "string"
                },
                "xmlname": {
                    "$ref": "#/definitions/xml.Name"
                }
            }
        },
        "formatter.JUnitTestSuites": {
            "type": "object",
            "properties": {
                "suites": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/formatter.JUnitTestSuite"
                    }
                },
                "xmlname": {
                    "$ref": "#/definitions/xml.Name"
                }
            }
        },
        "handler.AffectedVersionCase": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "versions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.AffectedVersionCaseStatus"
                    }
                }
            }
        },
        "handler.AffectedVersionCaseStatus": {
            "type": "object",
            "properties": {
                "status": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "handler.GetAffectedVersionCasesResponse": {
            "type": "object",
            "properties": {
                "cases": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.AffectedVersionCase"
                    }
                },
                "trigger": {
                    "description": "Trigger is the metadata for the trigger.",
                    "$ref": "#/definitions/model.TestTrigger"
                }
            }
        },
        "handler.GetTriggerStatusForDailyCIResp": {
            "type": "object",
            "properties": {
                "finished": {
                    "type": "boolean"
                }
            }
        },
        "handler.HTTPError": {
            "type": "object",
            "properties": {
                "errors": {
                    "$ref": "#/definitions/service.Error"
                }
            }
        },
        "handler.TriggerTestsResp": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                },
                "triggeredCount": {
                    "type": "integer"
                }
            }
        },
        "model.CPUResource": {
            "type": "object",
            "properties": {
                "core": {
                    "type": "number"
                }
            }
        },
        "model.CaseExecutionListResponse": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.TestCaseExecution"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "model.CaseListResponse": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.TestCase"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "model.CaseParamBind": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "model.CaseParamDecl": {
            "type": "object",
            "properties": {
                "default": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "type": {
                    "type": "string",
                    "default": "STRING"
                }
            }
        },
        "model.CaseSearchResponse": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "_formatted": {
                                "$ref": "#/definitions/model.TestCase"
                            },
                            "automation": {
                                "type": "string",
                                "default": "NOT_AUTOMATED"
                            },
                            "category": {
                                "type": "string",
                                "default": "FUNCTIONALITY"
                            },
                            "createdAt": {
                                "type": "string"
                            },
                            "email": {
                                "type": "string"
                            },
                            "expectedResult": {
                                "type": "string"
                            },
                            "framework": {
                                "$ref": "#/definitions/model.FrameworkUnion"
                            },
                            "id": {
                                "description": "additional Meta",
                                "type": "integer"
                            },
                            "name": {
                                "type": "string"
                            },
                            "parameters": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/definitions/model.CaseParamDecl"
                                }
                            },
                            "preconditions": {
                                "type": "string"
                            },
                            "priority": {
                                "type": "string",
                                "default": "P1"
                            },
                            "steps": {
                                "type": "string"
                            },
                            "summary": {
                                "type": "string"
                            },
                            "supportedVersions": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "tags": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "updatedAt": {
                                "type": "string"
                            }
                        }
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "model.CaseTriage": {
            "type": "object",
            "properties": {
                "caseExecutionID": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                },
                "caseID": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                },
                "createdAt": {
                    "type": "string"
                },
                "forkedFrom": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                },
                "id": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                },
                "issueLink": {
                    "type": "string"
                },
                "note": {
                    "type": "string"
                },
                "planExecutionID": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                },
                "planID": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                },
                "reason": {
                    "type": "string"
                },
                "solution": {
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string"
                }
            }
        },
        "model.CaseTriageSummary": {
            "type": "object",
            "properties": {
                "case": {
                    "$ref": "#/definitions/model.TestCase"
                },
                "execution": {
                    "$ref": "#/definitions/model.TestCaseExecution"
                },
                "triage": {
                    "$ref": "#/definitions/model.CaseTriage"
                }
            }
        },
        "model.DailySummary": {
            "type": "object",
            "properties": {
                "caseSummary": {
                    "$ref": "#/definitions/model.DailySummaryDetails"
                },
                "date": {
                    "type": "string"
                },
                "planSummary": {
                    "$ref": "#/definitions/model.DailySummaryDetails"
                }
            }
        },
        "model.DailySummaryDetails": {
            "type": "object",
            "properties": {
                "failReasonSummary": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "integer"
                    }
                },
                "failureExecIDIncreased": {
                    "type": "array",
                    "items": {
                        "description": "ID: tcms ui need planExecutionID as id here,",
                        "type": "integer"
                    }
                },
                "statusSummary": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "integer"
                    }
                }
            }
        },
        "model.ExecutionMeta": {
            "type": "object",
            "additionalProperties": {
                "type": "string"
            }
        },
        "model.FrameworkUnion": {
            "type": "object",
            "properties": {
                "generic": {
                    "$ref": "#/definitions/model.GenericFrameworkSpec"
                }
            }
        },
        "model.GenericFrameworkSpec": {
            "type": "object",
            "required": [
                "image"
            ],
            "properties": {
                "command": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                        "type": "string"
                    }
                },
                "defaultTimeout": {
                    "type": "integer"
                },
                "env": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "image": {
                    "type": "string"
                },
                "imagePullPolicy": {
                    "type": "string",
                    "default": "Always"
                },
                "workingDir": {
                    "type": "string",
                    "default": "/"
                }
            }
        },
        "model.GetPlanExecSummaryResponse": {
            "type": "object",
            "properties": {
                "caseExecFailureCnt": {
                    "type": "integer"
                },
                "caseExecTotal": {
                    "type": "integer"
                },
                "caseTriageSummaries": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.CaseTriageSummary"
                    }
                },
                "id": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                },
                "planExec": {
                    "$ref": "#/definitions/model.TestPlanExecution"
                },
                "planTriage": {
                    "$ref": "#/definitions/model.Triage"
                }
            }
        },
        "model.GetReleaseSummaryResponse": {
            "type": "object",
            "properties": {
                "caseExecFailureCnt": {
                    "type": "integer"
                },
                "caseExecTotal": {
                    "type": "integer"
                },
                "errorPlanExecsSummary": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.GetPlanExecSummaryResponse"
                    }
                },
                "failedPlanExecsSummary": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.GetPlanExecSummaryResponse"
                    }
                },
                "planExecErrorCnt": {
                    "type": "integer"
                },
                "planExecFailureCnt": {
                    "type": "integer"
                },
                "planExecTotal": {
                    "type": "integer"
                }
            }
        },
        "model.HistoryRecord": {
            "type": "object",
            "properties": {
                "action": {
                    "type": "string"
                },
                "createdAt": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "id": {
                    "description": "additional Meta",
                    "type": "integer"
                },
                "revision": {
                    "description": "additional Meta",
                    "type": "integer"
                }
            }
        },
        "model.ListReleasePlansResponse": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.TestPlanWithTriggerred"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "model.MemoryResource": {
            "type": "object",
            "properties": {
                "byte": {
                    "type": "integer"
                }
            }
        },
        "model.PersonalAccessTokenInfo": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "type": "string"
                },
                "id": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                },
                "lastUsedAt": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "scopes": {
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string"
                },
                "user": {
                    "$ref": "#/definitions/model.User"
                },
                "userID": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                }
            }
        },
        "model.PersonalAccessTokenInfoListResponse": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PersonalToken"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "model.PersonalToken": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "type": "string"
                },
                "id": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                },
                "lastUsedAt": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "scopes": {
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string"
                },
                "userID": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                }
            }
        },
        "model.PhysicalResource": {
            "type": "object",
            "properties": {
                "cpu": {
                    "$ref": "#/definitions/model.CPUResource"
                },
                "memory": {
                    "$ref": "#/definitions/model.MemoryResource"
                }
            }
        },
        "model.PipelineStep": {
            "type": "object",
            "properties": {
                "after": {
                    "description": "After is the list of pipeline-steps that this pipeline-step depends on.\nNOTE: ` + "`" + `after` + "`" + ` is forbidden for ` + "`" + `steps` + "`" + `, only ` + "`" + `pipeline` + "`" + ` can use it.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "arguments": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.CaseParamBind"
                    }
                },
                "caseID": {
                    "description": "additional Meta",
                    "type": "integer"
                },
                "caseImage": {
                    "type": "string"
                },
                "caseName": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "timeout": {
                    "type": "integer"
                }
            }
        },
        "model.PlanCreateResponse": {
            "type": "object",
            "properties": {
                "branch": {
                    "description": "Branch is the master part on above example",
                    "type": "string"
                },
                "commit": {
                    "description": "CommitHash is the 7dae1d3 part for example\n\nWe uses the commit hash for data integrity and idempotent, since we don't need to\ndecide how to remove a add/deleted/update a pipeline.",
                    "type": "string"
                },
                "commitTs": {
                    "description": "CommitTs is the commit unix nano timestamp",
                    "type": "integer"
                },
                "createdAt": {
                    "description": "If specified, will fail this plan-execution if any of its child case-executions has failed.",
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "failFast": {
                    "description": "If specified, will fail this plan-execution if any of its child case-executions has failed.",
                    "type": "boolean"
                },
                "id": {
                    "type": "integer"
                },
                "metaParams": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PlanVarDecl"
                    }
                },
                "name": {
                    "description": "For the GitHub Plan, name is in the format of: $plan_name@$branch\nFor the OnShot Plan, name is no need",
                    "type": "string"
                },
                "path": {
                    "description": "Path is the tidb/sql-infra/ddl/shard-bits.daily.yaml part for example",
                    "type": "string"
                },
                "pipeline": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PipelineStep"
                    }
                },
                "planExecutionURL": {
                    "description": "Only oneshot plan has this field.",
                    "type": "string"
                },
                "repo": {
                    "description": "Repo is the pingcap/test-plan part for example, it's reserved and may use in the future",
                    "type": "string"
                },
                "schedule": {
                    "description": "Cron Schedule",
                    "type": "string"
                },
                "steps": {
                    "description": "Steps is a pipeline that executes serially. Incompatible with ` + "`" + `Pipeline` + "`" + `.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PipelineStep"
                    }
                },
                "tags": {
                    "description": "Tags is used to selected TestPlan, for example, release manager can tag one plan as [\"release\"] so that this one should be selected when release test",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "testbed": {
                    "$ref": "#/definitions/model.TestBed"
                },
                "type": {
                    "type": "string",
                    "default": "ONE_SHOT"
                },
                "updatedAt": {
                    "type": "string"
                },
                "variables": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PlanVarDecl"
                    }
                },
                "waitTimeout": {
                    "description": "todo maybe should be in exec, but use can set here for one-shot plan",
                    "type": "integer"
                }
            }
        },
        "model.PlanExecutionSearchResponse": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "_formatted": {
                                "$ref": "#/definitions/model.TestPlanExecution"
                            },
                            "argoURL": {
                                "description": "TODO(lijie,gaozifeng): Write argo url to plan-execution table.",
                                "type": "string"
                            },
                            "completedAt": {
                                "description": "TODO: Change type to ` + "`" + `time.Time` + "`" + `.",
                                "type": "integer"
                            },
                            "createdAt": {
                                "description": "TODO: Change type to ` + "`" + `time.Time` + "`" + `.",
                                "type": "integer"
                            },
                            "email": {
                                "type": "string"
                            },
                            "id": {
                                "type": "integer"
                            },
                            "meta": {
                                "$ref": "#/definitions/model.ExecutionMeta"
                            },
                            "metaParams": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/definitions/model.PlanVarBind"
                                }
                            },
                            "name": {
                                "type": "string"
                            },
                            "note": {
                                "type": "string"
                            },
                            "output": {
                                "type": "string"
                            },
                            "planID": {
                                "description": "Deprecated: Use PlanIDAndName.ID instead.",
                                "type": "integer"
                            },
                            "priority": {
                                "description": "Only for GITHUB type",
                                "type": "integer",
                                "default": 0
                            },
                            "reason": {
                                "type": "string"
                            },
                            "rerunID": {
                                "description": "The execution ID that it reruns. Empty if it's not a rerun execution.",
                                "type": "integer"
                            },
                            "retryCnt": {
                                "type": "integer"
                            },
                            "startedAt": {
                                "description": "TODO: Change type to ` + "`" + `time.Time` + "`" + `.",
                                "type": "integer"
                            },
                            "status": {
                                "type": "string"
                            },
                            "steps": {
                                "description": "The plan-steps to run.",
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "triggerID": {
                                "description": "Deprecated: Use PlanIDAndName.ID instead.",
                                "type": "integer"
                            },
                            "updatedAt": {
                                "type": "string"
                            },
                            "variables": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/definitions/model.PlanVarBind"
                                }
                            }
                        }
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "model.PlanListResponse": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.TestPlan"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "model.PlanVarBind": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "model.PlanVarDecl": {
            "type": "object",
            "properties": {
                "default": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "model.RMS": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "type": "string"
                },
                "endpoint": {
                    "type": "string"
                },
                "id": {
                    "description": "The execution ID that it reruns. Empty if it's not a rerun execution.",
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "token": {
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string"
                }
            }
        },
        "model.ResourceDuration": {
            "type": "object",
            "properties": {
                "cpuDuration": {
                    "description": "unit: hour * 1 core",
                    "type": "integer"
                },
                "createdAt": {
                    "type": "string"
                },
                "id": {
                    "description": "The execution ID that it reruns. Empty if it's not a rerun execution.",
                    "type": "integer"
                },
                "memoryDuration": {
                    "description": "unit: hour * 1 GB",
                    "type": "integer"
                },
                "planExecutionID": {
                    "description": "The execution ID that it reruns. Empty if it's not a rerun execution.",
                    "type": "integer"
                },
                "type": {
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string"
                }
            }
        },
        "model.ResourcePool": {
            "type": "object",
            "properties": {
                "aliases": {
                    "type": "string"
                },
                "createdAt": {
                    "type": "string"
                },
                "id": {
                    "description": "The execution ID that it reruns. Empty if it's not a rerun execution.",
                    "type": "integer"
                },
                "idleResource": {
                    "$ref": "#/definitions/model.PhysicalResource"
                },
                "name": {
                    "type": "string"
                },
                "nonTestbedOccupationResource": {
                    "$ref": "#/definitions/model.PhysicalResource"
                },
                "rmsName": {
                    "type": "string"
                },
                "rmsURL": {
                    "type": "string"
                },
                "totalResource": {
                    "$ref": "#/definitions/model.PhysicalResource"
                },
                "updatedAt": {
                    "type": "string"
                }
            }
        },
        "model.ResourcePoolListResponse": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.ResourcePool"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "model.TestBed": {
            "type": "object",
            "properties": {
                "generateName": {
                    "description": "GenerateName is an optional prefix, used by the RMS server, to generate a unique\nname ONLY IF the Name field has not been provided.",
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.TestBedItem"
                    }
                },
                "name": {
                    "description": "Name can be generated by scheduler from GenerateName",
                    "type": "string"
                },
                "physicalResourceRequest": {
                    "description": "If left empty, scheduler will try to estimate it",
                    "$ref": "#/definitions/model.PhysicalResource"
                },
                "qos": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/resource.QosClaim"
                    }
                },
                "reclaimPolicy": {
                    "description": "ReclaimPolicy shows how to clean the whole testbed resources",
                    "$ref": "#/definitions/resource.ReclaimPolicy"
                },
                "resourcePool": {
                    "description": "ResourcePool can be re-written by scheduler",
                    "type": "string",
                    "default": "default"
                },
                "rmsUrl": {
                    "description": "RmsUrl is the url added by scheduler and used by executor",
                    "type": "string"
                }
            }
        },
        "model.TestBedInfo": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "type": "string"
                },
                "id": {
                    "description": "The execution ID that it reruns. Empty if it's not a rerun execution.",
                    "type": "integer"
                },
                "initiatedAt": {
                    "type": "string"
                },
                "leaseDDL": {
                    "description": "LeaseDDL is the time when a testbed will be released\nLeaseDDL = CreatedAt + ReclaimPolicy.Lease",
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "physicalResourceRequest": {
                    "$ref": "#/definitions/model.PhysicalResource"
                },
                "planExecutionID": {
                    "description": "The execution ID that it reruns. Empty if it's not a rerun execution.",
                    "type": "integer"
                },
                "releasedAt": {
                    "type": "string"
                },
                "releasedBy": {
                    "description": "The execution ID that it reruns. Empty if it's not a rerun execution.",
                    "type": "integer"
                },
                "resourceItems": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.TestBedInfoResourceItem"
                    }
                },
                "resourcePool": {
                    "$ref": "#/definitions/model.ResourcePool"
                },
                "setUpLogURL": {
                    "type": "string"
                },
                "status": {
                    "description": "TestBedInfoStatus = {\"INITIATING\", \"READY\", \"RELEASED\", \"ERROR\"}",
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string"
                },
                "url": {
                    "description": "URL is the url to the testbed.",
                    "type": "string"
                }
            }
        },
        "model.TestBedInfoListResponse": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.TestBedInfo"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "model.TestBedInfoResourceItem": {
            "type": "object",
            "required": [
                "type"
            ],
            "properties": {
                "details": {
                    "$ref": "#/definitions/resource.Details"
                },
                "name": {
                    "description": "Name is the name of the test resource",
                    "type": "string",
                    "maxLength": 255
                },
                "provider": {
                    "description": "Provider indicates the name of provider who creates the resource.",
                    "type": "string"
                },
                "ready": {
                    "description": "Ready identifies whether the test resource is in the ready state, it's generated on the RMS server side",
                    "type": "boolean"
                },
                "testbed": {
                    "description": "Testbed is the name of test resource's testbed and it's required unless the Type value equals to TEST_BED",
                    "type": "string"
                },
                "type": {
                    "description": "Type is the resource type",
                    "type": "string"
                }
            }
        },
        "model.TestBedItem": {
            "type": "object",
            "required": [
                "type"
            ],
            "properties": {
                "name": {
                    "description": "Name is the name of the test resource",
                    "type": "string",
                    "maxLength": 255
                },
                "provider": {
                    "description": "Provider indicates the name of provider who creates the resource.",
                    "type": "string"
                },
                "qos": {
                    "description": "Qos is the quality of service on test resource",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "ready": {
                    "description": "Ready identifies whether the test resource is in the ready state, it's generated on the RMS server side",
                    "type": "boolean"
                },
                "spec": {
                    "description": "Spec is the specification of test resource\nTODO(@mahjonp): add a validator(used on the TCMS server)",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "testbed": {
                    "description": "Testbed is the name of test resource's testbed and it's required unless the Type value equals to TEST_BED",
                    "type": "string"
                },
                "type": {
                    "description": "Type is the resource type",
                    "type": "string"
                }
            }
        },
        "model.TestCase": {
            "type": "object",
            "properties": {
                "automation": {
                    "type": "string",
                    "default": "NOT_AUTOMATED"
                },
                "category": {
                    "type": "string",
                    "default": "FUNCTIONALITY"
                },
                "createdAt": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "expectedResult": {
                    "type": "string"
                },
                "framework": {
                    "$ref": "#/definitions/model.FrameworkUnion"
                },
                "id": {
                    "description": "additional Meta",
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "parameters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.CaseParamDecl"
                    }
                },
                "preconditions": {
                    "type": "string"
                },
                "priority": {
                    "type": "string",
                    "default": "P1"
                },
                "steps": {
                    "type": "string"
                },
                "summary": {
                    "type": "string"
                },
                "supportedVersions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "updatedAt": {
                    "type": "string"
                }
            }
        },
        "model.TestCaseBase": {
            "type": "object",
            "properties": {
                "framework": {
                    "$ref": "#/definitions/model.FrameworkUnion"
                },
                "name": {
                    "type": "string"
                },
                "parameters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.CaseParamDecl"
                    }
                }
            }
        },
        "model.TestCaseExecution": {
            "type": "object",
            "properties": {
                "argoURL": {
                    "description": "TODO(lijie,gaozifeng): Write argo url to plan-execution table.",
                    "type": "string"
                },
                "caseID": {
                    "description": "additional Meta",
                    "type": "integer"
                },
                "completedAt": {
                    "description": "TODO: Change type to ` + "`" + `time.Time` + "`" + `.",
                    "type": "integer"
                },
                "createdAt": {
                    "description": "TODO: Change type to ` + "`" + `time.Time` + "`" + `.",
                    "type": "integer"
                },
                "id": {
                    "description": "additional Meta",
                    "type": "integer"
                },
                "meta": {
                    "$ref": "#/definitions/model.ExecutionMeta"
                },
                "name": {
                    "type": "string"
                },
                "note": {
                    "type": "string"
                },
                "output": {
                    "type": "string"
                },
                "reason": {
                    "type": "string"
                },
                "rootPlanExecID": {
                    "description": "additional Meta",
                    "type": "integer"
                },
                "rootPlanID": {
                    "description": "additional Meta",
                    "type": "integer"
                },
                "startedAt": {
                    "description": "TODO: Change type to ` + "`" + `time.Time` + "`" + `.",
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                },
                "stepName": {
                    "type": "string"
                },
                "stepSeq": {
                    "type": "integer"
                },
                "updatedAt": {
                    "type": "string"
                }
            }
        },
        "model.TestPlan": {
            "type": "object",
            "properties": {
                "branch": {
                    "description": "Branch is the master part on above example",
                    "type": "string"
                },
                "commit": {
                    "description": "CommitHash is the 7dae1d3 part for example\n\nWe uses the commit hash for data integrity and idempotent, since we don't need to\ndecide how to remove a add/deleted/update a pipeline.",
                    "type": "string"
                },
                "commitTs": {
                    "description": "CommitTs is the commit unix nano timestamp",
                    "type": "integer"
                },
                "createdAt": {
                    "description": "If specified, will fail this plan-execution if any of its child case-executions has failed.",
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "failFast": {
                    "description": "If specified, will fail this plan-execution if any of its child case-executions has failed.",
                    "type": "boolean"
                },
                "id": {
                    "type": "integer"
                },
                "metaParams": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PlanVarDecl"
                    }
                },
                "name": {
                    "description": "For the GitHub Plan, name is in the format of: $plan_name@$branch\nFor the OnShot Plan, name is no need",
                    "type": "string"
                },
                "path": {
                    "description": "Path is the tidb/sql-infra/ddl/shard-bits.daily.yaml part for example",
                    "type": "string"
                },
                "pipeline": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PipelineStep"
                    }
                },
                "repo": {
                    "description": "Repo is the pingcap/test-plan part for example, it's reserved and may use in the future",
                    "type": "string"
                },
                "schedule": {
                    "description": "Cron Schedule",
                    "type": "string"
                },
                "steps": {
                    "description": "Steps is a pipeline that executes serially. Incompatible with ` + "`" + `Pipeline` + "`" + `.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PipelineStep"
                    }
                },
                "tags": {
                    "description": "Tags is used to selected TestPlan, for example, release manager can tag one plan as [\"release\"] so that this one should be selected when release test",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "testbed": {
                    "$ref": "#/definitions/model.TestBed"
                },
                "type": {
                    "type": "string",
                    "default": "ONE_SHOT"
                },
                "updatedAt": {
                    "type": "string"
                },
                "variables": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PlanVarDecl"
                    }
                },
                "waitTimeout": {
                    "description": "todo maybe should be in exec, but use can set here for one-shot plan",
                    "type": "integer"
                }
            }
        },
        "model.TestPlanExecution": {
            "type": "object",
            "properties": {
                "argoURL": {
                    "description": "TODO(lijie,gaozifeng): Write argo url to plan-execution table.",
                    "type": "string"
                },
                "completedAt": {
                    "description": "TODO: Change type to ` + "`" + `time.Time` + "`" + `.",
                    "type": "integer"
                },
                "createdAt": {
                    "description": "TODO: Change type to ` + "`" + `time.Time` + "`" + `.",
                    "type": "integer"
                },
                "email": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "meta": {
                    "$ref": "#/definitions/model.ExecutionMeta"
                },
                "metaParams": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PlanVarBind"
                    }
                },
                "name": {
                    "type": "string"
                },
                "note": {
                    "type": "string"
                },
                "output": {
                    "type": "string"
                },
                "planID": {
                    "description": "Deprecated: Use PlanIDAndName.ID instead.",
                    "type": "integer"
                },
                "priority": {
                    "description": "Only for GITHUB type",
                    "type": "integer",
                    "default": 0
                },
                "reason": {
                    "type": "string"
                },
                "rerunID": {
                    "description": "The execution ID that it reruns. Empty if it's not a rerun execution.",
                    "type": "integer"
                },
                "retryCnt": {
                    "type": "integer"
                },
                "startedAt": {
                    "description": "TODO: Change type to ` + "`" + `time.Time` + "`" + `.",
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                },
                "steps": {
                    "description": "The plan-steps to run.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "triggerID": {
                    "description": "Deprecated: Use PlanIDAndName.ID instead.",
                    "type": "integer"
                },
                "updatedAt": {
                    "type": "string"
                },
                "variables": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PlanVarBind"
                    }
                }
            }
        },
        "model.TestPlanWithTriggerred": {
            "type": "object",
            "properties": {
                "branch": {
                    "description": "Branch is the master part on above example",
                    "type": "string"
                },
                "commit": {
                    "description": "CommitHash is the 7dae1d3 part for example\n\nWe uses the commit hash for data integrity and idempotent, since we don't need to\ndecide how to remove a add/deleted/update a pipeline.",
                    "type": "string"
                },
                "commitTs": {
                    "description": "CommitTs is the commit unix nano timestamp",
                    "type": "integer"
                },
                "createdAt": {
                    "description": "If specified, will fail this plan-execution if any of its child case-executions has failed.",
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "failFast": {
                    "description": "If specified, will fail this plan-execution if any of its child case-executions has failed.",
                    "type": "boolean"
                },
                "id": {
                    "type": "integer"
                },
                "metaParams": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PlanVarDecl"
                    }
                },
                "name": {
                    "description": "For the GitHub Plan, name is in the format of: $plan_name@$branch\nFor the OnShot Plan, name is no need",
                    "type": "string"
                },
                "path": {
                    "description": "Path is the tidb/sql-infra/ddl/shard-bits.daily.yaml part for example",
                    "type": "string"
                },
                "pipeline": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PipelineStep"
                    }
                },
                "repo": {
                    "description": "Repo is the pingcap/test-plan part for example, it's reserved and may use in the future",
                    "type": "string"
                },
                "schedule": {
                    "description": "Cron Schedule",
                    "type": "string"
                },
                "steps": {
                    "description": "Steps is a pipeline that executes serially. Incompatible with ` + "`" + `Pipeline` + "`" + `.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PipelineStep"
                    }
                },
                "tags": {
                    "description": "Tags is used to selected TestPlan, for example, release manager can tag one plan as [\"release\"] so that this one should be selected when release test",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "testbed": {
                    "$ref": "#/definitions/model.TestBed"
                },
                "triggerred": {
                    "type": "boolean"
                },
                "type": {
                    "type": "string",
                    "default": "ONE_SHOT"
                },
                "updatedAt": {
                    "type": "string"
                },
                "variables": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PlanVarDecl"
                    }
                },
                "waitTimeout": {
                    "description": "todo maybe should be in exec, but use can set here for one-shot plan",
                    "type": "integer"
                }
            }
        },
        "model.TestTrigger": {
            "type": "object",
            "properties": {
                "active": {
                    "type": "boolean"
                },
                "createdAt": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "expr": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "lastTriggeredAt": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "planID": {
                    "type": "integer"
                },
                "planIDs": {
                    "type": "array",
                    "items": {
                        "description": "ID: tcms ui need planExecutionID as id here,",
                        "type": "integer"
                    }
                },
                "priority": {
                    "type": "integer"
                },
                "releaseBranch": {
                    "description": "Used in Release Test",
                    "type": "string"
                },
                "summary": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string"
                },
                "variables": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PlanVarBind"
                    }
                }
            }
        },
        "model.Triage": {
            "type": "object",
            "properties": {
                "TriagePhase": {
                    "type": "string"
                },
                "createdAt": {
                    "type": "string"
                },
                "id": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                },
                "note": {
                    "type": "string"
                },
                "planExecutionID": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                },
                "planID": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                },
                "reasons": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "solution": {
                    "type": "string"
                },
                "startedAt": {
                    "type": "string"
                },
                "toTriageCaseExecIDs": {
                    "type": "array",
                    "items": {
                        "description": "ID: tcms ui need planExecutionID as id here,",
                        "type": "integer"
                    }
                },
                "triagedAt": {
                    "type": "string"
                },
                "triagedCaseExecIDs": {
                    "type": "array",
                    "items": {
                        "description": "ID: tcms ui need planExecutionID as id here,",
                        "type": "integer"
                    }
                },
                "triagingUsers": {
                    "type": "array",
                    "items": {
                        "description": "ID: tcms ui need planExecutionID as id here,",
                        "type": "integer"
                    }
                },
                "updatedAt": {
                    "type": "string"
                }
            }
        },
        "model.TriggerListResponse": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.TestTrigger"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "model.User": {
            "type": "object",
            "properties": {
                "avatar": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "id": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "model.UserListResponse": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.User"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "request.CaseCreateRequest": {
            "type": "object",
            "properties": {
                "apiVersion": {
                    "type": "string"
                },
                "automation": {
                    "type": "string",
                    "default": "NOT_AUTOMATED"
                },
                "category": {
                    "type": "string",
                    "default": "FUNCTIONALITY"
                },
                "designer": {
                    "type": "string"
                },
                "expectedResult": {
                    "type": "string"
                },
                "framework": {
                    "$ref": "#/definitions/model.FrameworkUnion"
                },
                "kind": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "parameters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.CaseParamDecl"
                    }
                },
                "preconditions": {
                    "type": "string"
                },
                "priority": {
                    "type": "string",
                    "default": "P1"
                },
                "steps": {
                    "type": "string"
                },
                "summary": {
                    "type": "string"
                },
                "supportedVersions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "request.CaseExecutionCreateRequest": {
            "type": "object",
            "required": [
                "caseID",
                "rootPlanExecID"
            ],
            "properties": {
                "argoURL": {
                    "type": "string"
                },
                "caseID": {
                    "description": "additional Meta",
                    "type": "integer"
                },
                "completedAt": {
                    "description": "TODO: Change type to ` + "`" + `time.Time` + "`" + `.",
                    "type": "integer"
                },
                "meta": {
                    "$ref": "#/definitions/model.ExecutionMeta"
                },
                "output": {
                    "type": "string"
                },
                "rootPlanExecID": {
                    "description": "additional Meta",
                    "type": "integer"
                },
                "startedAt": {
                    "description": "TODO: Change type to ` + "`" + `time.Time` + "`" + `.",
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                },
                "stepName": {
                    "type": "string"
                },
                "stepSeq": {
                    "type": "integer"
                }
            }
        },
        "request.CaseExecutionUpdateRequest": {
            "type": "object",
            "properties": {
                "argoURL": {
                    "type": "string"
                },
                "completedAt": {
                    "description": "TODO: Change type to ` + "`" + `time.Time` + "`" + `.",
                    "type": "integer"
                },
                "meta": {
                    "$ref": "#/definitions/model.ExecutionMeta"
                },
                "output": {
                    "type": "string"
                },
                "startedAt": {
                    "description": "TODO: Change type to ` + "`" + `time.Time` + "`" + `.",
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "request.CaseTriageUpdateRequest": {
            "type": "object",
            "properties": {
                "issueLink": {
                    "type": "string"
                },
                "note": {
                    "type": "string"
                },
                "reason": {
                    "type": "string"
                },
                "solution": {
                    "type": "string"
                }
            }
        },
        "request.CaseUpdateRequest": {
            "type": "object",
            "properties": {
                "apiVersion": {
                    "type": "string"
                },
                "automation": {
                    "type": "string",
                    "default": "NOT_AUTOMATED"
                },
                "category": {
                    "type": "string",
                    "default": "FUNCTIONALITY"
                },
                "designer": {
                    "type": "string"
                },
                "expectedResult": {
                    "type": "string"
                },
                "framework": {
                    "$ref": "#/definitions/model.FrameworkUnion"
                },
                "kind": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "parameters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.CaseParamDecl"
                    }
                },
                "preconditions": {
                    "type": "string"
                },
                "priority": {
                    "type": "string",
                    "default": "P1"
                },
                "steps": {
                    "type": "string"
                },
                "summary": {
                    "type": "string"
                },
                "supportedVersions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "request.ExecutionNoteUpdateRequest": {
            "type": "object",
            "properties": {
                "note": {
                    "type": "string"
                }
            }
        },
        "request.ExecutionReasonUpdateRequest": {
            "type": "object",
            "properties": {
                "reason": {
                    "type": "string"
                }
            }
        },
        "request.PlanCreateRequest": {
            "type": "object",
            "properties": {
                "branch": {
                    "description": "Branch is the master part on above example",
                    "type": "string"
                },
                "cases": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.TestCaseBase"
                    }
                },
                "commit": {
                    "description": "CommitHash is the 7dae1d3 part for example\n\nWe uses the commit hash for data integrity and idempotent, since we don't need to\ndecide how to remove a add/deleted/update a pipeline.",
                    "type": "string"
                },
                "commitTs": {
                    "description": "CommitTs is the commit unix nano timestamp",
                    "type": "integer"
                },
                "failFast": {
                    "description": "If specified, will fail this plan-execution if any of its child case-executions has failed.",
                    "type": "boolean"
                },
                "metaParams": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PlanVarDecl"
                    }
                },
                "name": {
                    "description": "For the GitHub Plan, name is in the format of: $plan_name@$branch\nFor the OnShot Plan, name is no need",
                    "type": "string"
                },
                "path": {
                    "description": "Path is the tidb/sql-infra/ddl/shard-bits.daily.yaml part for example",
                    "type": "string"
                },
                "pipeline": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PipelineStep"
                    }
                },
                "priority": {
                    "description": "Only for GITHUB type",
                    "type": "integer",
                    "default": 0,
                    "enum": [
                        -100,
                        0,
                        50,
                        100,
                        101
                    ]
                },
                "repo": {
                    "description": "Repo is the pingcap/test-plan part for example, it's reserved and may use in the future",
                    "type": "string"
                },
                "schedule": {
                    "description": "Cron Schedule",
                    "type": "string"
                },
                "steps": {
                    "description": "Steps is a pipeline that executes serially. Incompatible with ` + "`" + `Pipeline` + "`" + `.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PipelineStep"
                    }
                },
                "tags": {
                    "description": "Tags is used to selected TestPlan, for example, release manager can tag one plan as [\"release\"] so that this one should be selected when release test",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "testbed": {
                    "$ref": "#/definitions/model.TestBed"
                },
                "type": {
                    "type": "string",
                    "default": "ONE_SHOT"
                },
                "variables": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PlanVarDecl"
                    }
                },
                "waitTimeout": {
                    "type": "integer",
                    "default": 604800
                }
            }
        },
        "request.PlanExecutionUpdateRequest": {
            "type": "object",
            "properties": {
                "argoURL": {
                    "type": "string"
                },
                "completedAt": {
                    "description": "TODO: Change type to ` + "`" + `time.Time` + "`" + `.",
                    "type": "integer"
                },
                "meta": {
                    "$ref": "#/definitions/model.ExecutionMeta"
                },
                "output": {
                    "type": "string"
                },
                "priority": {
                    "description": "Only for GITHUB type",
                    "type": "integer",
                    "default": 0
                },
                "retryCnt": {
                    "type": "integer"
                },
                "startedAt": {
                    "description": "TODO: Change type to ` + "`" + `time.Time` + "`" + `.",
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "request.PlanTriageUpdateRequest": {
            "type": "object",
            "properties": {
                "note": {
                    "type": "string"
                },
                "solution": {
                    "type": "string"
                },
                "triagePhase": {
                    "type": "string"
                },
                "triagingUsers": {
                    "type": "array",
                    "items": {
                        "description": "ID: tcms ui need planExecutionID as id here,",
                        "type": "integer"
                    }
                }
            }
        },
        "request.ResourcePoolUpdateRequest": {
            "type": "object",
            "properties": {
                "resourcePools": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.ResourcePool"
                    }
                }
            }
        },
        "request.TriggerCreateRequest": {
            "type": "object",
            "properties": {
                "autoIncludeReleasePlans": {
                    "description": "Auto include plans with ` + "`" + `release` + "`" + ` tag.",
                    "type": "boolean"
                },
                "expr": {
                    "description": "RFC3339 are accepted.\nNOTE: If ` + "`" + `Expr` + "`" + ` is empty, the plan will be triggered immediately.",
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "planID": {
                    "type": "integer"
                },
                "planIDs": {
                    "type": "array",
                    "items": {
                        "description": "ID: tcms ui need planExecutionID as id here,",
                        "type": "integer"
                    }
                },
                "plans": {
                    "description": "InlinePlans is only for ONCE trigger.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/request.TriggerCreateRequestInlinePlan"
                    }
                },
                "releaseBranch": {
                    "type": "string"
                },
                "summary": {
                    "type": "string"
                },
                "type": {
                    "type": "string",
                    "default": "ONCE"
                },
                "variables": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PlanVarBind"
                    }
                }
            }
        },
        "request.TriggerCreateRequestInlinePlan": {
            "type": "object",
            "properties": {
                "cases": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.TestCaseBase"
                    }
                },
                "failFast": {
                    "description": "If specified, will fail this plan-execution if any of its child case-executions has failed.",
                    "type": "boolean"
                },
                "metaParams": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PlanVarDecl"
                    }
                },
                "name": {
                    "description": "For the GitHub Plan, name is in the format of: $plan_name@$branch\nFor the OnShot Plan, name is no need",
                    "type": "string"
                },
                "pipeline": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PipelineStep"
                    }
                },
                "steps": {
                    "description": "Steps is a pipeline that executes serially. Incompatible with ` + "`" + `Pipeline` + "`" + `.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PipelineStep"
                    }
                },
                "testbed": {
                    "$ref": "#/definitions/model.TestBed"
                },
                "variables": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PlanVarDecl"
                    }
                }
            }
        },
        "request.UpdateTriggerPlanRefRequest": {
            "type": "object",
            "properties": {
                "newPlanIDs": {
                    "type": "array",
                    "items": {
                        "description": "ID: tcms ui need planExecutionID as id here,",
                        "type": "integer"
                    }
                }
            }
        },
        "resource.Details": {
            "type": "object",
            "properties": {
                "endpoints": {
                    "description": "TODO(@codingpoet): add more fields here",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/resource.Endpoint"
                    }
                }
            }
        },
        "resource.Endpoint": {
            "type": "object",
            "properties": {
                "externalSvcAddress": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "resource.GcAction": {
            "type": "object",
            "properties": {
                "artifact": {
                    "$ref": "#/definitions/resource.GcArtifactAction"
                },
                "notification": {
                    "$ref": "#/definitions/resource.GcNotificationAction"
                },
                "reserveEnv": {
                    "$ref": "#/definitions/resource.GcReserveEnvAction"
                }
            }
        },
        "resource.GcArtifactAction": {
            "type": "object",
            "properties": {
                "log": {
                    "type": "boolean"
                },
                "monitor": {
                    "type": "boolean"
                }
            }
        },
        "resource.GcNotificationAction": {
            "type": "object",
            "properties": {
                "feishu": {
                    "type": "string"
                }
            }
        },
        "resource.GcReserveEnvAction": {
            "type": "object",
            "properties": {
                "durationOnWorkingHour": {
                    "description": "retain duration on working hour, if triggers on non-working hour, retain to next working hour",
                    "type": "string"
                },
                "scaleDown": {
                    "description": "scale down to min request, on k8s impl, means removing resource requests(cpu \u0026 memory)",
                    "type": "boolean"
                },
                "scaleIn": {
                    "description": "scale in to min replicas, to tidbcluster, is 1 tidb, 1 tikv, 1 pd etc",
                    "type": "boolean"
                }
            }
        },
        "resource.GcStrategy": {
            "type": "object",
            "properties": {
                "onCompletion": {
                    "$ref": "#/definitions/resource.GcAction"
                },
                "onFailure": {
                    "$ref": "#/definitions/resource.GcAction"
                },
                "onSuccess": {
                    "$ref": "#/definitions/resource.GcAction"
                }
            }
        },
        "resource.QosClaim": {
            "type": "object",
            "properties": {
                "exclusive": {
                    "description": "Exclusive means whether the podGroup is mutually exclusive with other Pod or PodGroup.\n\nIf it is set, this pod are mutually exclusive with other pods(means don't schedule on the same node)\nwhich has different podGroup name or without a podGroup binding",
                    "type": "boolean"
                },
                "podGroup": {
                    "description": "PodGroup is the podGroup name, with the PodGroup we ensure a group of pods can be scheduled altogether.\n\nref: https://github.com/PingCAP-QE/NaglfarCloud",
                    "type": "string"
                }
            }
        },
        "resource.ReclaimPolicy": {
            "type": "object",
            "properties": {
                "gcStrategy": {
                    "$ref": "#/definitions/resource.GcStrategy"
                },
                "lease": {
                    "type": "string",
                    "default": "24h"
                }
            }
        },
        "service.Error": {
            "type": "object",
            "properties": {
                "code": {
                    "description": "Code is the error code.",
                    "type": "integer"
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "taskruns.ArgoRef": {
            "type": "object",
            "properties": {
                "namespace": {
                    "type": "string"
                },
                "nodeId": {
                    "type": "string"
                },
                "templateName": {
                    "type": "string"
                },
                "workflow": {
                    "type": "string"
                }
            }
        },
        "taskruns.GeneralMetaData": {
            "type": "object",
            "properties": {
                "createAt": {
                    "type": "string"
                },
                "createBy": {
                    "type": "string"
                },
                "id": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                },
                "updateAt": {
                    "type": "string"
                },
                "updateBy": {
                    "type": "string"
                }
            }
        },
        "taskruns.OutputParam": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "value": {
                    "type": "string"
                },
                "valueExpr": {
                    "type": "string"
                }
            }
        },
        "taskruns.Schedule": {
            "type": "object",
            "properties": {
                "lastScheduleTime": {
                    "type": "string"
                },
                "scheduleReason": {
                    "$ref": "#/definitions/taskruns.ScheduleReason"
                },
                "scheduleStatus": {
                    "type": "string"
                },
                "testbedSpec": {
                    "$ref": "#/definitions/model.TestBed"
                }
            }
        },
        "taskruns.ScheduleReason": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                },
                "relatedSetupIds": {
                    "type": "array",
                    "items": {
                        "description": "ID: tcms ui need planExecutionID as id here,",
                        "type": "integer"
                    }
                },
                "schedulerName": {
                    "type": "string"
                }
            }
        },
        "taskruns.TaskRunRef": {
            "type": "object",
            "properties": {
                "caseRunID": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                },
                "planRunID": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                },
                "testbedSetupRunID": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                }
            }
        },
        "taskruns.TaskRunStatus": {
            "type": "object",
            "properties": {
                "outPuts": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/taskruns.OutputParam"
                    }
                },
                "phase": {
                    "type": "string"
                },
                "underlying": {
                    "$ref": "#/definitions/taskruns.Underlying"
                }
            }
        },
        "taskruns.TestbedRef": {
            "type": "object",
            "properties": {
                "planID": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                }
            }
        },
        "taskruns.TestbedSetup": {
            "type": "object",
            "properties": {
                "apiVersion": {
                    "type": "string"
                },
                "kind": {
                    "type": "string"
                },
                "metadata": {
                    "$ref": "#/definitions/taskruns.GeneralMetaData"
                },
                "spec": {
                    "$ref": "#/definitions/taskruns.TestbedSetupSpec"
                },
                "status": {
                    "$ref": "#/definitions/taskruns.TestbedSetupStatus"
                }
            }
        },
        "taskruns.TestbedSetupList": {
            "type": "object",
            "properties": {
                "apiVersion": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/taskruns.TestbedSetup"
                    }
                },
                "kind": {
                    "type": "string"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "taskruns.TestbedSetupReport": {
            "type": "object",
            "properties": {
                "LastReportTime": {
                    "type": "string"
                },
                "retryCnt": {
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                },
                "testbedSpec": {
                    "$ref": "#/definitions/model.TestBed"
                }
            }
        },
        "taskruns.TestbedSetupSpec": {
            "type": "object",
            "properties": {
                "outPuts": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/taskruns.OutputParam"
                    }
                },
                "parent": {
                    "$ref": "#/definitions/taskruns.TaskRunRef"
                },
                "planExecID": {
                    "description": "ID: tcms ui need planExecutionID as id here,",
                    "type": "integer"
                },
                "testbedRef": {
                    "$ref": "#/definitions/taskruns.TestbedRef"
                },
                "testbedSpec": {
                    "$ref": "#/definitions/model.TestBed"
                }
            }
        },
        "taskruns.TestbedSetupStatus": {
            "type": "object",
            "properties": {
                "report": {
                    "$ref": "#/definitions/taskruns.TestbedSetupReport"
                },
                "run": {
                    "$ref": "#/definitions/taskruns.TaskRunStatus"
                },
                "schedule": {
                    "$ref": "#/definitions/taskruns.Schedule"
                }
            }
        },
        "taskruns.Underlying": {
            "type": "object",
            "properties": {
                "argo": {
                    "$ref": "#/definitions/taskruns.ArgoRef"
                }
            }
        },
        "xml.Name": {
            "type": "object",
            "properties": {
                "space": {
                    "type": "string"
                }
            }
        }
    },
    "securityDefinitions": {
        "Bearer": {
            "type": "apiKey",
            "name": "Authorization",
            "in": "header"
        }
    }
}`

// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
	Version:          "1.0",
	Host:             "",
	BasePath:         "/api/v1",
	Schemes:          []string{},
	Title:            "",
	Description:      "",
	InfoInstanceName: "swagger",
	SwaggerTemplate:  docTemplate,
}

func init() {
	swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}
