// Package swagger GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
// This file was generated by swaggo/swag
package swagger

import (
	"bytes"
	"encoding/json"
	"strings"
	"text/template"

	"github.com/swaggo/swag"
)

var doc = `{
    "schemes": {{ marshal .Schemes }},
    "swagger": "2.0",
    "info": {
        "description": "{{escape .Description}}",
        "title": "{{.Title}}",
        "contact": {},
        "version": "{{.Version}}"
    },
    "host": "{{.Host}}",
    "basePath": "{{.BasePath}}",
    "paths": {
        "/api/v1/captures": {
            "get": {
                "description": "list all captures in cdc cluster",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "capture"
                ],
                "summary": "List captures",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/model.Capture"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v1/captures/drain": {
            "put": {
                "description": "Drain all tables at the target captures in cdc cluster",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "capture"
                ],
                "summary": "Drain captures",
                "responses": {
                    "200": {
                        "description": ""
                    },
                    "202": {
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "503": {
                        "description": "Service Unavailable",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v1/changefeeds": {
            "get": {
                "description": "list all changefeeds in cdc cluster",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "changefeed"
                ],
                "summary": "List changefeed",
                "parameters": [
                    {
                        "type": "string",
                        "description": "state",
                        "name": "state",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/model.ChangefeedCommonInfo"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            },
            "post": {
                "description": "create a new changefeed",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "changefeed"
                ],
                "summary": "Create changefeed",
                "parameters": [
                    {
                        "description": "changefeed config",
                        "name": "changefeed",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.ChangefeedConfig"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v1/changefeeds/{changefeed_id}": {
            "get": {
                "description": "get detail information of a changefeed",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "changefeed"
                ],
                "summary": "Get changefeed",
                "parameters": [
                    {
                        "type": "string",
                        "description": "changefeed_id",
                        "name": "changefeed_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.ChangefeedDetail"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            },
            "put": {
                "description": "Update a changefeed",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "changefeed"
                ],
                "summary": "Update a changefeed",
                "parameters": [
                    {
                        "type": "string",
                        "description": "changefeed_id",
                        "name": "changefeed_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "changefeed config",
                        "name": "changefeedConfig",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.ChangefeedConfig"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            },
            "delete": {
                "description": "Remove a changefeed",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "changefeed"
                ],
                "summary": "Remove a changefeed",
                "parameters": [
                    {
                        "type": "string",
                        "description": "changefeed_id",
                        "name": "changefeed_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "202": {
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v1/changefeeds/{changefeed_id}/pause": {
            "post": {
                "description": "Pause a changefeed",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "changefeed"
                ],
                "summary": "Pause a changefeed",
                "parameters": [
                    {
                        "type": "string",
                        "description": "changefeed_id",
                        "name": "changefeed_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "202": {
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v1/changefeeds/{changefeed_id}/resume": {
            "post": {
                "description": "Resume a changefeed",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "changefeed"
                ],
                "summary": "Resume a changefeed",
                "parameters": [
                    {
                        "type": "string",
                        "description": "changefeed_id",
                        "name": "changefeed_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "202": {
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v1/changefeeds/{changefeed_id}/tables/move_table": {
            "post": {
                "description": "move one table to the target capture",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "changefeed"
                ],
                "summary": "move table",
                "parameters": [
                    {
                        "type": "string",
                        "description": "changefeed_id",
                        "name": "changefeed_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "move table request",
                        "name": "MoveTable",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.MoveTableReq"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v1/changefeeds/{changefeed_id}/tables/rebalance_table": {
            "post": {
                "description": "rebalance all tables of a changefeed",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "changefeed"
                ],
                "summary": "rebalance tables",
                "parameters": [
                    {
                        "type": "string",
                        "description": "changefeed_id",
                        "name": "changefeed_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "202": {
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v1/health": {
            "get": {
                "description": "check if CDC cluster is health",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "common"
                ],
                "summary": "Check if CDC cluster is health",
                "responses": {
                    "200": {
                        "description": ""
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v1/log": {
            "post": {
                "description": "change TiCDC log level dynamically",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "common"
                ],
                "summary": "Change TiCDC log level",
                "parameters": [
                    {
                        "description": "log level",
                        "name": "log_level",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v1/owner/resign": {
            "post": {
                "description": "notify the current controller to resign",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "owner"
                ],
                "summary": "notify the ticdc cluster controller to resign",
                "responses": {
                    "202": {
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v1/processors": {
            "get": {
                "description": "list all processors in the TiCDC cluster",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "processor"
                ],
                "summary": "List processors",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/model.ProcessorCommonInfo"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v1/processors/{changefeed_id}/{capture_id}": {
            "get": {
                "description": "get the detail information of a processor",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "processor"
                ],
                "summary": "Get processor detail information",
                "parameters": [
                    {
                        "type": "string",
                        "description": "changefeed ID",
                        "name": "changefeed_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "capture ID",
                        "name": "capture_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.ProcessorDetail"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v1/status": {
            "get": {
                "description": "get the status of a server(capture)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "common"
                ],
                "summary": "Get server status",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.ServerStatus"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v2/captures": {
            "get": {
                "description": "list all captures in cdc cluster",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "capture",
                    "v2"
                ],
                "summary": "List captures",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/v2.Capture"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v2/changefeeds": {
            "get": {
                "description": "list all changefeeds in cdc cluster",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "changefeed",
                    "v2"
                ],
                "summary": "List changefeed",
                "parameters": [
                    {
                        "type": "string",
                        "description": "state",
                        "name": "state",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "default",
                        "name": "namespace",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/v2.ChangefeedCommonInfo"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            },
            "post": {
                "description": "create a new changefeed",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "changefeed",
                    "v2"
                ],
                "summary": "Create changefeed",
                "parameters": [
                    {
                        "description": "changefeed config",
                        "name": "changefeed",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v2.ChangefeedConfig"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v2.ChangeFeedInfo"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v2/changefeeds/{changefeed_id}": {
            "get": {
                "description": "get detail information of a changefeed",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "changefeed",
                    "v2"
                ],
                "summary": "Get changefeed",
                "parameters": [
                    {
                        "type": "string",
                        "description": "changefeed_id",
                        "name": "changefeed_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "default",
                        "name": "namespace",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v2.ChangeFeedInfo"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            },
            "put": {
                "description": "Update a changefeed",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "changefeed",
                    "v2"
                ],
                "summary": "Update a changefeed",
                "parameters": [
                    {
                        "type": "string",
                        "description": "changefeed_id",
                        "name": "changefeed_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "default",
                        "name": "namespace",
                        "in": "query"
                    },
                    {
                        "description": "changefeed config",
                        "name": "changefeedConfig",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v2.ChangefeedConfig"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v2.ChangeFeedInfo"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            },
            "delete": {
                "description": "Remove a changefeed",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "changefeed",
                    "v2"
                ],
                "summary": "Remove a changefeed",
                "parameters": [
                    {
                        "type": "string",
                        "description": "changefeed_id",
                        "name": "changefeed_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "default",
                        "name": "namespace",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v2.EmptyResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v2/changefeeds/{changefeed_id}/pause": {
            "post": {
                "description": "Pause a changefeed",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "changefeed",
                    "v2"
                ],
                "summary": "Pause a changefeed",
                "parameters": [
                    {
                        "type": "string",
                        "description": "changefeed_id",
                        "name": "changefeed_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "default",
                        "name": "namespace",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v2.EmptyResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v2/changefeeds/{changefeed_id}/resume": {
            "post": {
                "description": "Resume a changefeed",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "changefeed",
                    "v2"
                ],
                "summary": "Resume a changefeed",
                "parameters": [
                    {
                        "type": "string",
                        "description": "changefeed_id",
                        "name": "changefeed_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "default",
                        "name": "namespace",
                        "in": "query"
                    },
                    {
                        "description": "resume config",
                        "name": "resumeConfig",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v2.ResumeChangefeedConfig"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v2.EmptyResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v2/changefeeds/{changefeed_id}/synced": {
            "get": {
                "description": "get the synced status of a changefeed",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "changefeed",
                    "v2"
                ],
                "summary": "Get synced status",
                "parameters": [
                    {
                        "type": "string",
                        "description": "changefeed_id",
                        "name": "changefeed_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "default",
                        "name": "namespace",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v2.SyncedStatus"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v2/health": {
            "get": {
                "description": "Check the health status of a TiCDC cluster",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "common",
                    "v2"
                ],
                "summary": "Check the health status of a TiCDC cluster",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v2.EmptyResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v2/log": {
            "post": {
                "description": "change TiCDC log level dynamically",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "common",
                    "v2"
                ],
                "summary": "Change TiCDC log level",
                "parameters": [
                    {
                        "description": "log level",
                        "name": "log_level",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v2.LogLevelReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v2.EmptyResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v2/owner/resign": {
            "post": {
                "description": "Notify the current controller to resign",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "owner",
                    "v2"
                ],
                "summary": "Notify the controller to resign",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v2.EmptyResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v2/processors": {
            "get": {
                "description": "list all processors in the TiCDC cluster",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "processor",
                    "v2"
                ],
                "summary": "List processors",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/v2.ProcessorCommonInfo"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v2/processors/{changefeed_id}/{capture_id}": {
            "get": {
                "description": "get the detail information of a processor",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "processor",
                    "v2"
                ],
                "summary": "Get processor detail information",
                "parameters": [
                    {
                        "type": "string",
                        "description": "changefeed ID",
                        "name": "changefeed_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "default",
                        "name": "namespace",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "capture ID",
                        "name": "capture_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v2.ProcessorDetail"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        },
        "/api/v2/status": {
            "get": {
                "description": "This API is a synchronous interface. If the request is successful,",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "common",
                    "v2"
                ],
                "summary": "Get the status information of a TiCDC node",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v2.ServerStatus"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.HTTPError"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "config.CSVConfig": {
            "type": "object",
            "properties": {
                "binary-encoding-method": {
                    "description": "encoding method of binary type",
                    "type": "string"
                },
                "delimiter": {
                    "description": "delimiter between fields, it can be 1 character or at most 2 characters\nIt can not be CR or LF or contains CR or LF.\nIt should have exclusive characters with quote.",
                    "type": "string"
                },
                "include-commit-ts": {
                    "description": "whether to include commit ts",
                    "type": "boolean"
                },
                "null": {
                    "description": "representation of null values",
                    "type": "string"
                },
                "output-handle-key": {
                    "description": "output handle key",
                    "type": "boolean"
                },
                "output-old-value": {
                    "description": "output old value",
                    "type": "boolean"
                },
                "quote": {
                    "description": "quoting character",
                    "type": "string"
                }
            }
        },
        "config.CloudStorageConfig": {
            "type": "object",
            "properties": {
                "file-cleanup-cron-spec": {
                    "type": "string"
                },
                "file-expiration-days": {
                    "type": "integer"
                },
                "file-size": {
                    "type": "integer"
                },
                "flush-concurrency": {
                    "type": "integer"
                },
                "flush-interval": {
                    "type": "string"
                },
                "output-column-id": {
                    "type": "boolean"
                },
                "output-raw-change-event": {
                    "description": "OutputRawChangeEvent controls whether to split the update pk/uk events.",
                    "type": "boolean"
                },
                "worker-count": {
                    "type": "integer"
                }
            }
        },
        "config.CodecConfig": {
            "type": "object",
            "properties": {
                "avro-bigint-unsigned-handling-mode": {
                    "type": "string"
                },
                "avro-decimal-handling-mode": {
                    "type": "string"
                },
                "avro-enable-watermark": {
                    "type": "boolean"
                },
                "enable-tidb-extension": {
                    "type": "boolean"
                },
                "encoding-format": {
                    "type": "string"
                },
                "max-batch-size": {
                    "type": "integer"
                }
            }
        },
        "config.ColumnSelector": {
            "type": "object",
            "properties": {
                "columns": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "matcher": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "config.DebeziumConfig": {
            "type": "object",
            "properties": {
                "output-old-value": {
                    "type": "boolean"
                }
            }
        },
        "config.DispatchRule": {
            "type": "object",
            "properties": {
                "columns": {
                    "description": "Columns are set when using columns dispatcher.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "dispatcher": {
                    "description": "Deprecated, please use PartitionRule.",
                    "type": "string"
                },
                "index": {
                    "description": "IndexName is set when using index-value dispatcher with specified index.",
                    "type": "string"
                },
                "matcher": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "partition": {
                    "description": "PartitionRule is an alias added for DispatcherRule to mitigate confusions.\nIn the future release, the DispatcherRule is expected to be removed .",
                    "type": "string"
                },
                "topic": {
                    "type": "string"
                }
            }
        },
        "config.GlueSchemaRegistryConfig": {
            "type": "object",
            "properties": {
                "access-key": {
                    "description": "AccessKey of the schema registry",
                    "type": "string"
                },
                "region": {
                    "description": "Region of the schema registry",
                    "type": "string"
                },
                "registry-name": {
                    "description": "Name of the schema registry",
                    "type": "string"
                },
                "secret-access-key": {
                    "description": "SecretAccessKey of the schema registry",
                    "type": "string"
                },
                "token": {
                    "type": "string"
                }
            }
        },
        "config.KafkaConfig": {
            "type": "object",
            "properties": {
                "auto-create-topic": {
                    "type": "boolean"
                },
                "ca": {
                    "type": "string"
                },
                "cert": {
                    "type": "string"
                },
                "codec-config": {
                    "$ref": "#/definitions/config.CodecConfig"
                },
                "compression": {
                    "type": "string"
                },
                "dial-timeout": {
                    "type": "string"
                },
                "enable-tls": {
                    "type": "boolean"
                },
                "glue-schema-registry-config": {
                    "$ref": "#/definitions/config.GlueSchemaRegistryConfig"
                },
                "insecure-skip-verify": {
                    "type": "boolean"
                },
                "kafka-client-id": {
                    "type": "string"
                },
                "kafka-version": {
                    "type": "string"
                },
                "key": {
                    "type": "string"
                },
                "large-message-handle": {
                    "$ref": "#/definitions/config.LargeMessageHandleConfig"
                },
                "max-message-bytes": {
                    "type": "integer"
                },
                "output-raw-change-event": {
                    "description": "OutputRawChangeEvent controls whether to split the update pk/uk events.",
                    "type": "boolean"
                },
                "partition-num": {
                    "type": "integer"
                },
                "read-timeout": {
                    "type": "string"
                },
                "replication-factor": {
                    "type": "integer"
                },
                "required-acks": {
                    "type": "integer"
                },
                "sasl-gssapi-auth-type": {
                    "type": "string"
                },
                "sasl-gssapi-disable-pafxfast": {
                    "type": "boolean"
                },
                "sasl-gssapi-kerberos-config-path": {
                    "type": "string"
                },
                "sasl-gssapi-keytab-path": {
                    "type": "string"
                },
                "sasl-gssapi-password": {
                    "type": "string"
                },
                "sasl-gssapi-realm": {
                    "type": "string"
                },
                "sasl-gssapi-service-name": {
                    "type": "string"
                },
                "sasl-gssapi-user": {
                    "type": "string"
                },
                "sasl-mechanism": {
                    "type": "string"
                },
                "sasl-oauth-audience": {
                    "type": "string"
                },
                "sasl-oauth-client-id": {
                    "type": "string"
                },
                "sasl-oauth-client-secret": {
                    "type": "string"
                },
                "sasl-oauth-grant-type": {
                    "type": "string"
                },
                "sasl-oauth-scopes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "sasl-oauth-token-url": {
                    "type": "string"
                },
                "sasl-password": {
                    "type": "string"
                },
                "sasl-user": {
                    "type": "string"
                },
                "write-timeout": {
                    "type": "string"
                }
            }
        },
        "config.LargeMessageHandleConfig": {
            "type": "object",
            "properties": {
                "claim-check-raw-value": {
                    "type": "boolean"
                },
                "claim-check-storage-uri": {
                    "type": "string"
                },
                "large-message-handle-compression": {
                    "type": "string"
                },
                "large-message-handle-option": {
                    "type": "string"
                }
            }
        },
        "config.MySQLConfig": {
            "type": "object",
            "properties": {
                "enable-batch-dml": {
                    "type": "boolean"
                },
                "enable-cache-prepared-statement": {
                    "type": "boolean"
                },
                "enable-multi-statement": {
                    "type": "boolean"
                },
                "max-multi-update-row": {
                    "type": "integer"
                },
                "max-multi-update-row-size": {
                    "type": "integer"
                },
                "max-txn-row": {
                    "type": "integer"
                },
                "read-timeout": {
                    "type": "string"
                },
                "ssl-ca": {
                    "type": "string"
                },
                "ssl-cert": {
                    "type": "string"
                },
                "ssl-key": {
                    "type": "string"
                },
                "tidb-txn-mode": {
                    "type": "string"
                },
                "time-zone": {
                    "type": "string"
                },
                "timeout": {
                    "type": "string"
                },
                "worker-count": {
                    "type": "integer"
                },
                "write-timeout": {
                    "type": "string"
                }
            }
        },
        "config.OAuth2": {
            "type": "object",
            "properties": {
                "oauth2-audience": {
                    "description": "OAuth2Audience  the URL of the resource server.",
                    "type": "string"
                },
                "oauth2-client-id": {
                    "description": "OAuth2ClientID  the client ID of the application.",
                    "type": "string"
                },
                "oauth2-issuer-url": {
                    "description": "OAuth2IssuerURL  the URL of the authorization server.",
                    "type": "string"
                },
                "oauth2-private-key": {
                    "description": "OAuth2PrivateKey the private key used to sign the server.",
                    "type": "string"
                },
                "oauth2-scope": {
                    "description": "OAuth2Scope scope",
                    "type": "string"
                }
            }
        },
        "config.OpenProtocolConfig": {
            "type": "object",
            "properties": {
                "output-old-value": {
                    "type": "boolean"
                }
            }
        },
        "config.PulsarConfig": {
            "type": "object",
            "properties": {
                "auth-tls-certificate-path": {
                    "description": "AuthTLSCertificatePath  create new pulsar authentication provider with specified TLS certificate and private key",
                    "type": "string"
                },
                "auth-tls-private-key-path": {
                    "description": "AuthTLSPrivateKeyPath private key",
                    "type": "string"
                },
                "authentication-token": {
                    "description": "AuthenticationToken the token for the Pulsar server",
                    "type": "string"
                },
                "basic-password": {
                    "description": "BasicPassword with account",
                    "type": "string"
                },
                "basic-user-name": {
                    "description": "BasicUserName Account name for pulsar basic authentication (the second priority authentication method)",
                    "type": "string"
                },
                "batching-max-messages": {
                    "description": "BatchingMaxMessages specifies the maximum number of messages permitted in a batch. (default: 1000)",
                    "type": "integer"
                },
                "batching-max-publish-delay": {
                    "description": "BatchingMaxPublishDelay specifies the time period within which the messages sent will be batched (default: 10ms)\nif batch messages are enabled. If set to a non zero value, messages will be queued until this time\ninterval or until",
                    "type": "integer"
                },
                "compression-type": {
                    "description": "pulsar client compression",
                    "type": "string"
                },
                "connection-timeout": {
                    "description": "ConnectionTimeout Timeout for the establishment of a TCP connection (default: 5 seconds)",
                    "type": "integer"
                },
                "oauth2": {
                    "description": "Oauth2 include  oauth2-issuer-url oauth2-audience oauth2-private-key oauth2-client-id\nand 'type' always use 'client_credentials'",
                    "$ref": "#/definitions/config.OAuth2"
                },
                "operation-timeout": {
                    "description": "Set the operation timeout (default: 30 seconds)\nProducer-create, subscribe and unsubscribe operations will be retried until this interval, after which the\noperation will be marked as failed",
                    "type": "integer"
                },
                "output-raw-change-event": {
                    "description": "OutputRawChangeEvent controls whether to split the update pk/uk events.",
                    "type": "boolean"
                },
                "pulsar-producer-cache-size": {
                    "description": "PulsarProducerCacheSize is the size of the cache of pulsar producers",
                    "type": "integer"
                },
                "pulsar-version": {
                    "description": "PulsarVersion print the version of pulsar",
                    "type": "string"
                },
                "send-timeout": {
                    "description": "SendTimeout specifies the timeout for a message that has not been acknowledged by the server since sent.\nSend and SendAsync returns an error after timeout.\ndefault: 30s",
                    "type": "integer"
                },
                "tls-certificate-file": {
                    "type": "string"
                },
                "tls-key-file-path": {
                    "type": "string"
                },
                "tls-trust-certs-file-path": {
                    "type": "string"
                },
                "token-from-file": {
                    "description": "TokenFromFile Authentication from the file token,\nthe path name of the file (the third priority authentication method)",
                    "type": "string"
                }
            }
        },
        "config.SinkConfig": {
            "type": "object",
            "properties": {
                "advance-timeout-in-sec": {
                    "description": "AdvanceTimeoutInSec is a duration in second. If a table sink progress hasn't been\nadvanced for this given duration, the sink will be canceled and re-established.\nDeprecated since v8.1.1",
                    "type": "integer"
                },
                "cloud-storage-config": {
                    "$ref": "#/definitions/config.CloudStorageConfig"
                },
                "column-selectors": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/config.ColumnSelector"
                    }
                },
                "content-compatible": {
                    "description": "ContentCompatible is only available when the downstream is MQ.",
                    "type": "boolean"
                },
                "csv": {
                    "description": "CSVConfig is only available when the downstream is Storage.",
                    "$ref": "#/definitions/config.CSVConfig"
                },
                "date-separator": {
                    "description": "DateSeparator is only available when the downstream is Storage.",
                    "type": "string"
                },
                "debezium": {
                    "description": "DebeziumConfig related configurations",
                    "$ref": "#/definitions/config.DebeziumConfig"
                },
                "debezium-disable-schema": {
                    "description": "Debezium only. Whether schema should be excluded in the output.",
                    "type": "boolean"
                },
                "delete-only-output-handle-key-columns": {
                    "description": "DeleteOnlyOutputHandleKeyColumns is only available when the downstream is MQ.",
                    "type": "boolean"
                },
                "dispatchers": {
                    "description": "DispatchRules is only available when the downstream is MQ.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/config.DispatchRule"
                    }
                },
                "enable-kafka-sink-v2": {
                    "description": "EnableKafkaSinkV2 enabled then the kafka-go sink will be used.\nIt is only available when the downstream is MQ.",
                    "type": "boolean"
                },
                "enable-partition-separator": {
                    "description": "EnablePartitionSeparator is only available when the downstream is Storage.",
                    "type": "boolean"
                },
                "encoder-concurrency": {
                    "description": "EncoderConcurrency is only available when the downstream is MQ.",
                    "type": "integer"
                },
                "file-index-digit": {
                    "description": "FileIndexWidth is only available when the downstream is Storage",
                    "type": "integer"
                },
                "kafka-config": {
                    "$ref": "#/definitions/config.KafkaConfig"
                },
                "mysql-config": {
                    "$ref": "#/definitions/config.MySQLConfig"
                },
                "only-output-updated-columns": {
                    "description": "OnlyOutputUpdatedColumns is only available when the downstream is MQ.",
                    "type": "boolean"
                },
                "open": {
                    "description": "OpenProtocol related configurations",
                    "$ref": "#/definitions/config.OpenProtocolConfig"
                },
                "protocol": {
                    "description": "Protocol is NOT available when the downstream is DB.",
                    "type": "string"
                },
                "pulsar-config": {
                    "$ref": "#/definitions/config.PulsarConfig"
                },
                "safe-mode": {
                    "description": "SafeMode is only available when the downstream is DB.",
                    "type": "boolean"
                },
                "schema-registry": {
                    "description": "SchemaRegistry is only available when the downstream is MQ using avro protocol.",
                    "type": "string"
                },
                "send-all-bootstrap-at-start": {
                    "description": "SendAllBootstrapAtStart determines whether to send all tables bootstrap message at changefeed start.",
                    "type": "boolean"
                },
                "send-bootstrap-in-msg-count": {
                    "description": "SendBootstrapInMsgCount means bootstrap messages are being sent every SendBootstrapInMsgCount row change messages.",
                    "type": "integer"
                },
                "send-bootstrap-interval-in-sec": {
                    "description": "Simple Protocol only config, use to control the behavior of sending bootstrap message.\nNote: When one of the following conditions is set to negative value,\nbootstrap sending function will be disabled.\nSendBootstrapIntervalInSec is the interval in seconds to send bootstrap message.",
                    "type": "integer"
                },
                "send-bootstrap-to-all-partition": {
                    "description": "SendBootstrapToAllPartition determines whether to send bootstrap message to all partitions.\nIf set to false, bootstrap message will only be sent to the first partition of each topic.\nDefault value is true.",
                    "type": "boolean"
                },
                "terminator": {
                    "description": "Terminator is NOT available when the downstream is DB.",
                    "type": "string"
                },
                "transaction-atomicity": {
                    "type": "string"
                }
            }
        },
        "model.Capture": {
            "type": "object",
            "properties": {
                "address": {
                    "type": "string"
                },
                "cluster_id": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "is_owner": {
                    "type": "boolean"
                }
            }
        },
        "model.CaptureTaskStatus": {
            "type": "object",
            "properties": {
                "capture_id": {
                    "type": "string"
                },
                "table_ids": {
                    "description": "Table list, containing tables that processor should process",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "table_operations": {
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/model.TableOperation"
                    }
                }
            }
        },
        "model.ChangefeedCommonInfo": {
            "type": "object",
            "properties": {
                "checkpoint_time": {
                    "type": "string"
                },
                "checkpoint_tso": {
                    "type": "integer"
                },
                "error": {
                    "$ref": "#/definitions/model.RunningError"
                },
                "id": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "state": {
                    "type": "string"
                },
                "upstream_id": {
                    "type": "integer"
                }
            }
        },
        "model.ChangefeedConfig": {
            "type": "object",
            "properties": {
                "changefeed_id": {
                    "type": "string"
                },
                "filter_rules": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "force_replicate": {
                    "description": "if true, force to replicate some ineligible tables",
                    "type": "boolean",
                    "default": false
                },
                "ignore_ineligible_table": {
                    "type": "boolean",
                    "default": false
                },
                "ignore_txn_start_ts": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "mounter_worker_num": {
                    "type": "integer",
                    "default": 16
                },
                "namespace": {
                    "type": "string"
                },
                "sink_config": {
                    "$ref": "#/definitions/config.SinkConfig"
                },
                "sink_uri": {
                    "type": "string"
                },
                "start_ts": {
                    "type": "integer"
                },
                "target_ts": {
                    "type": "integer"
                },
                "timezone": {
                    "description": "timezone used when checking sink uri",
                    "type": "string",
                    "default": "system"
                }
            }
        },
        "model.ChangefeedDetail": {
            "type": "object",
            "properties": {
                "checkpoint_time": {
                    "type": "string"
                },
                "checkpoint_tso": {
                    "type": "integer"
                },
                "create_time": {
                    "type": "string"
                },
                "creator_version": {
                    "type": "string"
                },
                "error": {
                    "$ref": "#/definitions/model.RunningError"
                },
                "error_history": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "id": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "resolved_ts": {
                    "type": "integer"
                },
                "sink_uri": {
                    "type": "string"
                },
                "sort_engine": {
                    "type": "string"
                },
                "start_ts": {
                    "type": "integer"
                },
                "state": {
                    "type": "string"
                },
                "target_ts": {
                    "type": "integer"
                },
                "task_status": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.CaptureTaskStatus"
                    }
                },
                "upstream_id": {
                    "type": "integer"
                }
            }
        },
        "model.HTTPError": {
            "type": "object",
            "properties": {
                "error_code": {
                    "type": "string"
                },
                "error_msg": {
                    "type": "string"
                }
            }
        },
        "model.MoveTableReq": {
            "type": "object",
            "properties": {
                "capture_id": {
                    "type": "string"
                },
                "table_id": {
                    "type": "integer"
                }
            }
        },
        "model.ProcessorCommonInfo": {
            "type": "object",
            "properties": {
                "capture_id": {
                    "type": "string"
                },
                "changefeed_id": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                }
            }
        },
        "model.ProcessorDetail": {
            "type": "object",
            "properties": {
                "table_ids": {
                    "description": "All table ids that this processor are replicating.",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        "model.RunningError": {
            "type": "object",
            "properties": {
                "addr": {
                    "type": "string"
                },
                "code": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "time": {
                    "type": "string"
                }
            }
        },
        "model.ServerStatus": {
            "type": "object",
            "properties": {
                "cluster_id": {
                    "type": "string"
                },
                "git_hash": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "is_owner": {
                    "type": "boolean"
                },
                "liveness": {
                    "type": "integer"
                },
                "pid": {
                    "type": "integer"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "model.TableOperation": {
            "type": "object",
            "properties": {
                "boundary_ts": {
                    "description": "if the operation is a delete operation, BoundaryTs is checkpoint ts\nif the operation is an add operation, BoundaryTs is start ts",
                    "type": "integer"
                },
                "delete": {
                    "type": "boolean"
                },
                "flag": {
                    "type": "integer"
                },
                "status": {
                    "type": "integer"
                }
            }
        },
        "v2.CSVConfig": {
            "type": "object",
            "properties": {
                "binary_encoding_method": {
                    "type": "string"
                },
                "delimiter": {
                    "type": "string"
                },
                "include_commit_ts": {
                    "type": "boolean"
                },
                "null": {
                    "type": "string"
                },
                "output_handle_key": {
                    "type": "boolean"
                },
                "output_old_value": {
                    "type": "boolean"
                },
                "quote": {
                    "type": "string"
                }
            }
        },
        "v2.Capture": {
            "type": "object",
            "properties": {
                "address": {
                    "type": "string"
                },
                "cluster_id": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "is_owner": {
                    "type": "boolean"
                }
            }
        },
        "v2.ChangeFeedInfo": {
            "type": "object",
            "properties": {
                "admin_job_type": {
                    "description": "used for admin job notification, trigger watch event in capture",
                    "type": "integer"
                },
                "checkpoint_time": {
                    "type": "string"
                },
                "checkpoint_ts": {
                    "type": "integer"
                },
                "config": {
                    "$ref": "#/definitions/v2.ReplicaConfig"
                },
                "create_time": {
                    "type": "string"
                },
                "creator_version": {
                    "type": "string"
                },
                "error": {
                    "$ref": "#/definitions/v2.RunningError"
                },
                "id": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "resolved_ts": {
                    "type": "integer"
                },
                "sink_uri": {
                    "type": "string"
                },
                "start_ts": {
                    "description": "Start sync at this commit ts if ` + "`" + `StartTs` + "`" + ` is specify or using the CreateTime of changefeed.",
                    "type": "integer"
                },
                "state": {
                    "type": "string"
                },
                "target_ts": {
                    "description": "The ChangeFeed will exits until sync to timestamp TargetTs",
                    "type": "integer"
                },
                "task_status": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.CaptureTaskStatus"
                    }
                },
                "upstream_id": {
                    "type": "integer"
                }
            }
        },
        "v2.ChangefeedCommonInfo": {
            "type": "object",
            "properties": {
                "checkpoint_time": {
                    "type": "string"
                },
                "checkpoint_tso": {
                    "type": "integer"
                },
                "error": {
                    "$ref": "#/definitions/model.RunningError"
                },
                "id": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "state": {
                    "type": "string"
                },
                "upstream_id": {
                    "type": "integer"
                }
            }
        },
        "v2.ChangefeedConfig": {
            "type": "object",
            "properties": {
                "ca_path": {
                    "type": "string"
                },
                "cert_allowed_cn": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "cert_path": {
                    "type": "string"
                },
                "changefeed_id": {
                    "type": "string"
                },
                "key_path": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "pd_addrs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "replica_config": {
                    "$ref": "#/definitions/v2.ReplicaConfig"
                },
                "sink_uri": {
                    "type": "string"
                },
                "start_ts": {
                    "type": "integer"
                },
                "target_ts": {
                    "type": "integer"
                }
            }
        },
        "v2.ChangefeedSchedulerConfig": {
            "type": "object",
            "properties": {
                "enable_table_across_nodes": {
                    "description": "EnableTableAcrossNodes set true to split one table to multiple spans and\ndistribute to multiple TiCDC nodes.",
                    "type": "boolean"
                },
                "region_threshold": {
                    "description": "RegionThreshold is the region count threshold of splitting a table.",
                    "type": "integer"
                },
                "write_key_threshold": {
                    "description": "WriteKeyThreshold is the written keys threshold of splitting a table.",
                    "type": "integer"
                }
            }
        },
        "v2.CloudStorageConfig": {
            "type": "object",
            "properties": {
                "file_cleanup_cron_spec": {
                    "type": "string"
                },
                "file_expiration_days": {
                    "type": "integer"
                },
                "file_size": {
                    "type": "integer"
                },
                "flush_concurrency": {
                    "type": "integer"
                },
                "flush_interval": {
                    "type": "string"
                },
                "output_column_id": {
                    "type": "boolean"
                },
                "output_raw_change_event": {
                    "type": "boolean"
                },
                "worker_count": {
                    "type": "integer"
                }
            }
        },
        "v2.CodecConfig": {
            "type": "object",
            "properties": {
                "avro_bigint_unsigned_handling_mode": {
                    "type": "string"
                },
                "avro_decimal_handling_mode": {
                    "type": "string"
                },
                "avro_enable_watermark": {
                    "type": "boolean"
                },
                "enable_tidb_extension": {
                    "type": "boolean"
                },
                "encoding_format": {
                    "type": "string"
                },
                "max_batch_size": {
                    "type": "integer"
                }
            }
        },
        "v2.ColumnSelector": {
            "type": "object",
            "properties": {
                "columns": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "matcher": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "v2.ConsistentConfig": {
            "type": "object",
            "properties": {
                "compression": {
                    "type": "string"
                },
                "encoding_worker_num": {
                    "type": "integer"
                },
                "flush_concurrency": {
                    "type": "integer"
                },
                "flush_interval": {
                    "type": "integer"
                },
                "flush_worker_num": {
                    "type": "integer"
                },
                "level": {
                    "type": "string"
                },
                "max_log_size": {
                    "type": "integer"
                },
                "memory_usage": {
                    "$ref": "#/definitions/v2.ConsistentMemoryUsage"
                },
                "meta_flush_interval": {
                    "type": "integer"
                },
                "storage": {
                    "type": "string"
                },
                "use_file_backend": {
                    "type": "boolean"
                }
            }
        },
        "v2.ConsistentMemoryUsage": {
            "type": "object",
            "properties": {
                "memory_quota_percentage": {
                    "type": "integer"
                }
            }
        },
        "v2.DebeziumConfig": {
            "type": "object",
            "properties": {
                "output_old_value": {
                    "type": "boolean"
                }
            }
        },
        "v2.DispatchRule": {
            "type": "object",
            "properties": {
                "columns": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "index": {
                    "type": "string"
                },
                "matcher": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "partition": {
                    "type": "string"
                },
                "topic": {
                    "type": "string"
                }
            }
        },
        "v2.EmptyResponse": {
            "type": "object"
        },
        "v2.EventFilterRule": {
            "type": "object",
            "properties": {
                "ignore_delete_value_expr": {
                    "type": "string"
                },
                "ignore_event": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "ignore_insert_value_expr": {
                    "description": "sql expression",
                    "type": "string"
                },
                "ignore_sql": {
                    "description": "regular expression",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "ignore_update_new_value_expr": {
                    "type": "string"
                },
                "ignore_update_old_value_expr": {
                    "type": "string"
                },
                "matcher": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "v2.FilterConfig": {
            "type": "object",
            "properties": {
                "event_filters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/v2.EventFilterRule"
                    }
                },
                "ignore_txn_start_ts": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "rules": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "v2.GlueSchemaRegistryConfig": {
            "type": "object",
            "properties": {
                "access_key": {
                    "description": "AccessKey of the schema registry",
                    "type": "string"
                },
                "region": {
                    "description": "Region of the schema registry",
                    "type": "string"
                },
                "registry_name": {
                    "description": "Name of the schema registry",
                    "type": "string"
                },
                "secret_access_key": {
                    "description": "SecretAccessKey of the schema registry",
                    "type": "string"
                },
                "token": {
                    "type": "string"
                }
            }
        },
        "v2.IntegrityConfig": {
            "type": "object",
            "properties": {
                "corruption_handle_level": {
                    "type": "string"
                },
                "integrity_check_level": {
                    "type": "string"
                }
            }
        },
        "v2.JSONDuration": {
            "type": "object"
        },
        "v2.KafkaConfig": {
            "type": "object",
            "properties": {
                "auto_create_topic": {
                    "type": "boolean"
                },
                "ca": {
                    "type": "string"
                },
                "cert": {
                    "type": "string"
                },
                "codec_config": {
                    "$ref": "#/definitions/v2.CodecConfig"
                },
                "compression": {
                    "type": "string"
                },
                "dial_timeout": {
                    "type": "string"
                },
                "enable_tls": {
                    "type": "boolean"
                },
                "glue_schema_registry_config": {
                    "$ref": "#/definitions/v2.GlueSchemaRegistryConfig"
                },
                "insecure_skip_verify": {
                    "type": "boolean"
                },
                "kafka_client_id": {
                    "type": "string"
                },
                "kafka_version": {
                    "type": "string"
                },
                "key": {
                    "type": "string"
                },
                "large_message_handle": {
                    "$ref": "#/definitions/v2.LargeMessageHandleConfig"
                },
                "max_message_bytes": {
                    "type": "integer"
                },
                "output_raw_change_event": {
                    "type": "boolean"
                },
                "partition_num": {
                    "type": "integer"
                },
                "read_timeout": {
                    "type": "string"
                },
                "replication_factor": {
                    "type": "integer"
                },
                "required_acks": {
                    "type": "integer"
                },
                "sasl_gssapi_auth_type": {
                    "type": "string"
                },
                "sasl_gssapi_disable_pafxfast": {
                    "type": "boolean"
                },
                "sasl_gssapi_kerberos_config_path": {
                    "type": "string"
                },
                "sasl_gssapi_keytab_path": {
                    "type": "string"
                },
                "sasl_gssapi_password": {
                    "type": "string"
                },
                "sasl_gssapi_realm": {
                    "type": "string"
                },
                "sasl_gssapi_service_name": {
                    "type": "string"
                },
                "sasl_gssapi_user": {
                    "type": "string"
                },
                "sasl_mechanism": {
                    "type": "string"
                },
                "sasl_oauth_audience": {
                    "type": "string"
                },
                "sasl_oauth_client_id": {
                    "type": "string"
                },
                "sasl_oauth_client_secret": {
                    "type": "string"
                },
                "sasl_oauth_grant_type": {
                    "type": "string"
                },
                "sasl_oauth_scopes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "sasl_oauth_token_url": {
                    "type": "string"
                },
                "sasl_password": {
                    "type": "string"
                },
                "sasl_user": {
                    "type": "string"
                },
                "write_timeout": {
                    "type": "string"
                }
            }
        },
        "v2.LargeMessageHandleConfig": {
            "type": "object",
            "properties": {
                "claim_check_raw_value": {
                    "type": "boolean"
                },
                "claim_check_storage_uri": {
                    "type": "string"
                },
                "large_message_handle_compression": {
                    "type": "string"
                },
                "large_message_handle_option": {
                    "type": "string"
                }
            }
        },
        "v2.LogLevelReq": {
            "type": "object",
            "properties": {
                "log_level": {
                    "type": "string"
                }
            }
        },
        "v2.MounterConfig": {
            "type": "object",
            "properties": {
                "worker_num": {
                    "type": "integer"
                }
            }
        },
        "v2.MySQLConfig": {
            "type": "object",
            "properties": {
                "enable_batch_dml": {
                    "type": "boolean"
                },
                "enable_cache_prepared_statement": {
                    "type": "boolean"
                },
                "enable_multi_statement": {
                    "type": "boolean"
                },
                "max_multi_update_row_count": {
                    "type": "integer"
                },
                "max_multi_update_row_size": {
                    "type": "integer"
                },
                "max_txn_row": {
                    "type": "integer"
                },
                "read_timeout": {
                    "type": "string"
                },
                "ssl_ca": {
                    "type": "string"
                },
                "ssl_cert": {
                    "type": "string"
                },
                "ssl_key": {
                    "type": "string"
                },
                "tidb_txn_mode": {
                    "type": "string"
                },
                "time_zone": {
                    "type": "string"
                },
                "timeout": {
                    "type": "string"
                },
                "worker_count": {
                    "type": "integer"
                },
                "write_timeout": {
                    "type": "string"
                }
            }
        },
        "v2.OpenProtocolConfig": {
            "type": "object",
            "properties": {
                "output_old_value": {
                    "type": "boolean"
                }
            }
        },
        "v2.ProcessorCommonInfo": {
            "type": "object",
            "properties": {
                "capture_id": {
                    "type": "string"
                },
                "changefeed_id": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                }
            }
        },
        "v2.ProcessorDetail": {
            "type": "object",
            "properties": {
                "table_ids": {
                    "description": "All table ids that this processor are replicating.",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        "v2.PulsarConfig": {
            "type": "object",
            "properties": {
                "auth-tls-certificate-path": {
                    "type": "string"
                },
                "auth-tls-private-key-path": {
                    "type": "string"
                },
                "authentication-token": {
                    "type": "string"
                },
                "basic-password": {
                    "type": "string"
                },
                "basic-user-name": {
                    "type": "string"
                },
                "batching-max-messages": {
                    "type": "integer"
                },
                "batching-max-publish-delay": {
                    "type": "integer"
                },
                "compression-type": {
                    "type": "string"
                },
                "connection-timeout": {
                    "type": "integer"
                },
                "oauth2": {
                    "$ref": "#/definitions/v2.PulsarOAuth2"
                },
                "operation-timeout": {
                    "type": "integer"
                },
                "output-raw-change-event": {
                    "type": "boolean"
                },
                "pulsar-producer-cache-size": {
                    "type": "integer"
                },
                "pulsar-version": {
                    "type": "string"
                },
                "send-timeout": {
                    "type": "integer"
                },
                "tls-certificate-path": {
                    "type": "string"
                },
                "tls-private-key-path": {
                    "type": "string"
                },
                "tls-trust-certs-file-path": {
                    "type": "string"
                },
                "token-from-file": {
                    "type": "string"
                }
            }
        },
        "v2.PulsarOAuth2": {
            "type": "object",
            "properties": {
                "oauth2-audience": {
                    "type": "string"
                },
                "oauth2-client-id": {
                    "type": "string"
                },
                "oauth2-issuer-url": {
                    "type": "string"
                },
                "oauth2-private-key": {
                    "type": "string"
                },
                "oauth2-scope": {
                    "type": "string"
                }
            }
        },
        "v2.ReplicaConfig": {
            "type": "object",
            "properties": {
                "bdr_mode": {
                    "type": "boolean"
                },
                "case_sensitive": {
                    "type": "boolean"
                },
                "changefeed_error_stuck_duration": {
                    "$ref": "#/definitions/v2.JSONDuration"
                },
                "check_gc_safe_point": {
                    "type": "boolean"
                },
                "consistent": {
                    "$ref": "#/definitions/v2.ConsistentConfig"
                },
                "enable_sync_point": {
                    "type": "boolean"
                },
                "enable_table_monitor": {
                    "type": "boolean"
                },
                "filter": {
                    "$ref": "#/definitions/v2.FilterConfig"
                },
                "force_replicate": {
                    "type": "boolean"
                },
                "ignore_ineligible_table": {
                    "type": "boolean"
                },
                "integrity": {
                    "$ref": "#/definitions/v2.IntegrityConfig"
                },
                "memory_quota": {
                    "type": "integer"
                },
                "mounter": {
                    "$ref": "#/definitions/v2.MounterConfig"
                },
                "scheduler": {
                    "$ref": "#/definitions/v2.ChangefeedSchedulerConfig"
                },
                "sink": {
                    "$ref": "#/definitions/v2.SinkConfig"
                },
                "sql_mode": {
                    "description": "Deprecated: we don't use this field since v8.0.0.",
                    "type": "string"
                },
                "sync_point_interval": {
                    "type": "string"
                },
                "sync_point_retention": {
                    "type": "string"
                },
                "synced_status": {
                    "$ref": "#/definitions/v2.SyncedStatusConfig"
                }
            }
        },
        "v2.ResumeChangefeedConfig": {
            "type": "object",
            "properties": {
                "ca_path": {
                    "type": "string"
                },
                "cert_allowed_cn": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "cert_path": {
                    "type": "string"
                },
                "key_path": {
                    "type": "string"
                },
                "overwrite_checkpoint_ts": {
                    "type": "integer"
                },
                "pd_addrs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "v2.RunningError": {
            "type": "object",
            "properties": {
                "addr": {
                    "type": "string"
                },
                "code": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "time": {
                    "type": "string"
                }
            }
        },
        "v2.ServerStatus": {
            "type": "object",
            "properties": {
                "cluster_id": {
                    "type": "string"
                },
                "git_hash": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "is_owner": {
                    "type": "boolean"
                },
                "liveness": {
                    "type": "integer"
                },
                "pid": {
                    "type": "integer"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "v2.SinkConfig": {
            "type": "object",
            "properties": {
                "advance_timeout": {
                    "type": "integer"
                },
                "cloud_storage_config": {
                    "$ref": "#/definitions/v2.CloudStorageConfig"
                },
                "column_selectors": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/v2.ColumnSelector"
                    }
                },
                "content_compatible": {
                    "type": "boolean"
                },
                "csv": {
                    "$ref": "#/definitions/v2.CSVConfig"
                },
                "date_separator": {
                    "type": "string"
                },
                "debezium": {
                    "$ref": "#/definitions/v2.DebeziumConfig"
                },
                "debezium_disable_schema": {
                    "type": "boolean"
                },
                "delete_only_output_handle_key_columns": {
                    "type": "boolean"
                },
                "dispatchers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/v2.DispatchRule"
                    }
                },
                "enable_kafka_sink_v2": {
                    "type": "boolean"
                },
                "enable_partition_separator": {
                    "type": "boolean"
                },
                "encoder_concurrency": {
                    "type": "integer"
                },
                "file_index_width": {
                    "type": "integer"
                },
                "kafka_config": {
                    "$ref": "#/definitions/v2.KafkaConfig"
                },
                "mysql_config": {
                    "$ref": "#/definitions/v2.MySQLConfig"
                },
                "only_output_updated_columns": {
                    "type": "boolean"
                },
                "open": {
                    "$ref": "#/definitions/v2.OpenProtocolConfig"
                },
                "protocol": {
                    "type": "string"
                },
                "pulsar_config": {
                    "$ref": "#/definitions/v2.PulsarConfig"
                },
                "safe_mode": {
                    "type": "boolean"
                },
                "schema_registry": {
                    "type": "string"
                },
                "send-all-bootstrap-at-start": {
                    "type": "boolean"
                },
                "send_bootstrap_in_msg_count": {
                    "type": "integer"
                },
                "send_bootstrap_interval_in_sec": {
                    "type": "integer"
                },
                "send_bootstrap_to_all_partition": {
                    "type": "boolean"
                },
                "terminator": {
                    "type": "string"
                },
                "transaction_atomicity": {
                    "type": "string"
                }
            }
        },
        "v2.SyncedStatus": {
            "type": "object",
            "properties": {
                "info": {
                    "type": "string"
                },
                "last_synced_ts": {
                    "type": "string"
                },
                "now_ts": {
                    "type": "string"
                },
                "puller_resolved_ts": {
                    "type": "string"
                },
                "sink_checkpoint_ts": {
                    "type": "string"
                },
                "synced": {
                    "type": "boolean"
                }
            }
        },
        "v2.SyncedStatusConfig": {
            "type": "object",
            "properties": {
                "checkpoint_interval": {
                    "description": "The maximum interval between latest checkpoint ts and now or\nbetween latest sink's checkpoint ts and puller's checkpoint ts required to reach synced state",
                    "type": "integer"
                },
                "synced_check_interval": {
                    "description": "The minimum interval between the latest synced ts and now required to reach synced state",
                    "type": "integer"
                }
            }
        }
    }
}`

type swaggerInfo struct {
	Version     string
	Host        string
	BasePath    string
	Schemes     []string
	Title       string
	Description string
}

// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = swaggerInfo{
	Version:     "",
	Host:        "",
	BasePath:    "",
	Schemes:     []string{},
	Title:       "",
	Description: "",
}

type s struct{}

func (s *s) ReadDoc() string {
	sInfo := SwaggerInfo
	sInfo.Description = strings.Replace(sInfo.Description, "\n", "\\n", -1)

	t, err := template.New("swagger_info").Funcs(template.FuncMap{
		"marshal": func(v interface{}) string {
			a, _ := json.Marshal(v)
			return string(a)
		},
		"escape": func(v interface{}) string {
			// escape tabs
			str := strings.Replace(v.(string), "\t", "\\t", -1)
			// replace " with \", and if that results in \\", replace that with \\\"
			str = strings.Replace(str, "\"", "\\\"", -1)
			return strings.Replace(str, "\\\\\"", "\\\\\\\"", -1)
		},
	}).Parse(doc)
	if err != nil {
		return doc
	}

	var tpl bytes.Buffer
	if err := t.Execute(&tpl, sInfo); err != nil {
		return doc
	}

	return tpl.String()
}

func init() {
	swag.Register("swagger", &s{})
}
