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

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": {
        "/v2/database/columns": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "list columns of database source instance.",
                "tags": [
                    "database"
                ],
                "operationId": "ListDatabaseColumnsV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "database host",
                        "name": "host",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "database port",
                        "name": "port",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "database user",
                        "name": "user",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "database password",
                        "name": "password",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "database_type",
                        "name": "database_type",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "database service_name",
                        "name": "service_name",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "database schema",
                        "name": "schema",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "database table",
                        "name": "table",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "database character set",
                        "name": "character_set",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "indecate that database password is encrypted or not",
                        "name": "is_password_encrypted",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ListColumnsRespV2"
                        }
                    }
                }
            }
        },
        "/v2/database/instance_connection": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "connect to  database instance.",
                "tags": [
                    "database"
                ],
                "operationId": "ConnectionV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "database host",
                        "name": "host",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "database port",
                        "name": "port",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "database user",
                        "name": "user",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "database password",
                        "name": "password",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "database_type",
                        "name": "database_type",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "database service_name",
                        "name": "service_name",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "indecate that database password is encrypted or not",
                        "name": "is_password_encrypted",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ConnectionRespV2"
                        }
                    }
                }
            }
        },
        "/v2/database/schemas": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "list schemas of database source instance.",
                "tags": [
                    "database"
                ],
                "operationId": "ListDatabaseSchemasV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "database_type",
                        "name": "database_type",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "database host",
                        "name": "host",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "database port",
                        "name": "port",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "database user",
                        "name": "user",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "database password",
                        "name": "password",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "database service_name",
                        "name": "service_name",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "database character set",
                        "name": "character_set",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "indecate that database password is encrypted or not",
                        "name": "is_password_encrypted",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ListSchemasRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/diagnosis": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "diagnosis job.",
                "tags": [
                    "job"
                ],
                "operationId": "DiagnosisJobV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "job id",
                        "name": "job_id",
                        "in": "formData"
                    }
                ],
                "responses": {
                    "200": {
                        "description": ""
                    }
                }
            }
        },
        "/v2/job/migration/create": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "create migration job.",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "job"
                ],
                "operationId": "CreateMigrationJobV2",
                "parameters": [
                    {
                        "description": "migration job config",
                        "name": "migration_job_config",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.CreateOrUpdateMysqlToMysqlJobParamV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.CreateOrUpdateMysqlToMysqlJobRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/migration/delete": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "delete migration job.",
                "consumes": [
                    "application/x-www-form-urlencoded"
                ],
                "tags": [
                    "job"
                ],
                "operationId": "DeleteMigrationJobV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "job id",
                        "name": "job_id",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.DeleteJobRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/migration/detail": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get migration job detail.",
                "tags": [
                    "job"
                ],
                "operationId": "GetMigrationJobDetailV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "job id",
                        "name": "job_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.MysqlToMysqlJobDetailRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/migration/pause": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "pause migration job.",
                "consumes": [
                    "application/x-www-form-urlencoded"
                ],
                "tags": [
                    "job"
                ],
                "operationId": "PauseMigrationJobV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "job id",
                        "name": "job_id",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.PauseJobRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/migration/resume": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "resume migration job.",
                "consumes": [
                    "application/x-www-form-urlencoded"
                ],
                "tags": [
                    "job"
                ],
                "operationId": "ResumeMigrationJobV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "job id",
                        "name": "job_id",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ResumeJobRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/migration/reverse": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "reverse migration Job",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "job"
                ],
                "operationId": "ReverseMigrationJobV2",
                "parameters": [
                    {
                        "description": "reverse config config",
                        "name": "reverse_config",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.ReverseJobReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ReverseJobResp"
                        }
                    }
                }
            }
        },
        "/v2/job/migration/reverse_start": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Start Reverse Job.",
                "consumes": [
                    "application/x-www-form-urlencoded"
                ],
                "tags": [
                    "job"
                ],
                "summary": "start reverse-init job",
                "operationId": "ReverseStartMigrationJobV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "job id",
                        "name": "job_id",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ReverseStartRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/migration/update": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update migration job.",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "job"
                ],
                "operationId": "UpdateMigrationJobV2",
                "parameters": [
                    {
                        "description": "migration job config",
                        "name": "migration_job_config",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.CreateOrUpdateMysqlToMysqlJobParamV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.CreateOrUpdateMysqlToMysqlJobRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/position": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get src task current gtid/scn.",
                "tags": [
                    "job"
                ],
                "operationId": "GetJobPositionV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "job id",
                        "name": "job_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.JobPositionResp"
                        }
                    }
                }
            }
        },
        "/v2/job/reverse_start": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Finish Job.",
                "consumes": [
                    "application/x-www-form-urlencoded"
                ],
                "tags": [
                    "job"
                ],
                "summary": "start reverse-init job",
                "operationId": "ReverseStartJobV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "job id",
                        "name": "job_id",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ReverseStartRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/subscription/create": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "create subscription job.",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "job"
                ],
                "operationId": "CreateSubscriptionJobV2",
                "parameters": [
                    {
                        "description": "subscription job config",
                        "name": "subscription_job_config",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.CreateOrUpdateMysqlToKafkaJobParamV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.CreateOrUpdateMysqlToKafkaJobRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/subscription/delete": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "delete subscription job.",
                "consumes": [
                    "application/x-www-form-urlencoded"
                ],
                "tags": [
                    "job"
                ],
                "operationId": "DeleteSubscriptionJobV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "job id",
                        "name": "job_id",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.DeleteJobRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/subscription/detail": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get subscription job detail.",
                "tags": [
                    "job"
                ],
                "operationId": "GetSubscriptionJobDetailV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "job id",
                        "name": "job_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.MysqlToKafkaJobDetailRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/subscription/pause": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "pause subscription job.",
                "consumes": [
                    "application/x-www-form-urlencoded"
                ],
                "tags": [
                    "job"
                ],
                "operationId": "PauseSubscriptionJobV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "job id",
                        "name": "job_id",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.PauseJobRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/subscription/resume": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "resume subscription job.",
                "consumes": [
                    "application/x-www-form-urlencoded"
                ],
                "tags": [
                    "job"
                ],
                "operationId": "ResumeSubscriptionJobV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "job id",
                        "name": "job_id",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ResumeJobRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/subscription/update": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update subscription job.",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "job"
                ],
                "operationId": "CreateOrUpdateSubscriptionJobV2",
                "parameters": [
                    {
                        "description": "subscription job config",
                        "name": "subscription_job_config",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.CreateOrUpdateMysqlToKafkaJobParamV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.CreateOrUpdateMysqlToKafkaJobRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/sync/create": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "create sync job.",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "job"
                ],
                "operationId": "CreateSyncJobV2",
                "parameters": [
                    {
                        "description": "sync job config",
                        "name": "sync_job_config",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.CreateOrUpdateMysqlToMysqlJobParamV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.CreateOrUpdateMysqlToMysqlJobRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/sync/delete": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "delete sync job.",
                "consumes": [
                    "application/x-www-form-urlencoded"
                ],
                "tags": [
                    "job"
                ],
                "operationId": "DeleteSyncJobV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "job id",
                        "name": "job_id",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.DeleteJobRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/sync/detail": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get sync job detail.",
                "tags": [
                    "job"
                ],
                "operationId": "GetSyncJobDetailV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "job id",
                        "name": "job_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.MysqlToMysqlJobDetailRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/sync/pause": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "pause sync job.",
                "consumes": [
                    "application/x-www-form-urlencoded"
                ],
                "tags": [
                    "job"
                ],
                "operationId": "PauseSyncJobV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "job id",
                        "name": "job_id",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.PauseJobRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/sync/resume": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "resume sync job.",
                "consumes": [
                    "application/x-www-form-urlencoded"
                ],
                "tags": [
                    "job"
                ],
                "operationId": "ResumeSyncJobV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "job id",
                        "name": "job_id",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ResumeJobRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/sync/reverse": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "reverse sync Job",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "job"
                ],
                "operationId": "ReverseSyncJobV2",
                "parameters": [
                    {
                        "description": "reverse config config",
                        "name": "reverse_config",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.ReverseJobReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ReverseJobResp"
                        }
                    }
                }
            }
        },
        "/v2/job/sync/reverse_start": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Start Reverse Job.",
                "consumes": [
                    "application/x-www-form-urlencoded"
                ],
                "tags": [
                    "job"
                ],
                "summary": "start reverse-init job",
                "operationId": "ReverseStartSyncJobV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "job id",
                        "name": "job_id",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ReverseStartRespV2"
                        }
                    }
                }
            }
        },
        "/v2/job/sync/update": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update sync job.",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "job"
                ],
                "operationId": "UpdateSyncJobV2",
                "parameters": [
                    {
                        "description": "sync job config",
                        "name": "sync_job_config",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.CreateOrUpdateMysqlToMysqlJobParamV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.CreateOrUpdateMysqlToMysqlJobRespV2"
                        }
                    }
                }
            }
        },
        "/v2/jobs/migration": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get job list.",
                "tags": [
                    "job"
                ],
                "operationId": "MigrationJobListV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "filter job id",
                        "name": "filter_job_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter job src ip",
                        "name": "filter_job_src_ip",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter job src port",
                        "name": "filter_job_src_port",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter job dest ip",
                        "name": "filter_job_dest_ip",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter job dest port",
                        "name": "filter_job_dest_port",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter job status",
                        "name": "filter_job_status",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "job_create_time"
                        ],
                        "type": "string",
                        "default": "job_create_time",
                        "description": "order by",
                        "name": "order_by",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.JobListRespV2"
                        }
                    }
                }
            }
        },
        "/v2/jobs/subscription": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get subscription job list.",
                "tags": [
                    "job"
                ],
                "operationId": "SubscriptionJobListV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "filter job id",
                        "name": "filter_job_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter job src ip",
                        "name": "filter_job_src_ip",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter job src port",
                        "name": "filter_job_src_port",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter job dest ip",
                        "name": "filter_job_dest_ip",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter job dest port",
                        "name": "filter_job_dest_port",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter job status",
                        "name": "filter_job_status",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "job_create_time"
                        ],
                        "type": "string",
                        "default": "job_create_time",
                        "description": "order by",
                        "name": "order_by",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.JobListRespV2"
                        }
                    }
                }
            }
        },
        "/v2/jobs/sync": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get sync job list.",
                "tags": [
                    "job"
                ],
                "operationId": "SyncJobListV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "filter job id",
                        "name": "filter_job_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter job src ip",
                        "name": "filter_job_src_ip",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter job src port",
                        "name": "filter_job_src_port",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter job dest ip",
                        "name": "filter_job_dest_ip",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter job dest port",
                        "name": "filter_job_dest_port",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter job status",
                        "name": "filter_job_status",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "job_create_time"
                        ],
                        "type": "string",
                        "default": "job_create_time",
                        "description": "order by",
                        "name": "order_by",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.JobListRespV2"
                        }
                    }
                }
            }
        },
        "/v2/log/level": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "reload log level dynamically.",
                "consumes": [
                    "application/x-www-form-urlencoded"
                ],
                "tags": [
                    "log"
                ],
                "operationId": "UpdateLogLevelV2",
                "parameters": [
                    {
                        "enum": [
                            "TRACE",
                            "DEBUG",
                            "INFO",
                            "WARN",
                            "ERROR"
                        ],
                        "type": "string",
                        "description": "dtle log level",
                        "name": "dtle_log_level",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.UpdataLogLevelRespV2"
                        }
                    }
                }
            }
        },
        "/v2/login": {
            "post": {
                "description": "user login",
                "tags": [
                    "user"
                ],
                "summary": "user loginV2",
                "operationId": "loginV2",
                "parameters": [
                    {
                        "description": "user login request",
                        "name": "user",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.UserLoginReqV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.GetUserLoginResV2"
                        }
                    }
                }
            }
        },
        "/v2/login/captcha": {
            "post": {
                "description": "create base64Captcha",
                "tags": [
                    "user"
                ],
                "summary": "create base64Captcha",
                "operationId": "CaptchaV2",
                "parameters": [
                    {
                        "enum": [
                            "default",
                            "audio"
                        ],
                        "type": "string",
                        "description": "captcha type",
                        "name": "captcha_type",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.CaptchaRespV2"
                        }
                    }
                }
            }
        },
        "/v2/loginWithoutVerifyCode": {
            "post": {
                "description": "user login Without Verify Code",
                "tags": [
                    "user"
                ],
                "summary": "user LoginWithoutVerifyCodeV2",
                "operationId": "LoginWithoutVerifyCodeV2",
                "parameters": [
                    {
                        "description": "user login request",
                        "name": "user",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.LoginWithoutVerifyCodeReqV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.GetUserLoginResV2"
                        }
                    }
                }
            }
        },
        "/v2/monitor/task": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get progress of tasks within an allocation.",
                "tags": [
                    "monitor"
                ],
                "operationId": "GetTaskProgressV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "allocation id",
                        "name": "allocation_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "task name",
                        "name": "task_name",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "nomad_http_address is the http address of the nomad that the target dtle is running with. ignore it if you are not sure what to provide",
                        "name": "nomad_http_address",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.GetTaskProgressRespV2"
                        }
                    }
                }
            }
        },
        "/v2/mysql/columns": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "list columns of mysql source instance.",
                "tags": [
                    "mysql"
                ],
                "operationId": "ListMysqlColumnsV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "mysql host",
                        "name": "mysql_host",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "mysql port",
                        "name": "mysql_port",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "mysql user",
                        "name": "mysql_user",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "mysql password",
                        "name": "mysql_password",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "mysql schema",
                        "name": "mysql_schema",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "mysql table",
                        "name": "mysql_table",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "mysql character set",
                        "name": "mysql_character_set",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "indecate that mysql password is encrypted or not",
                        "name": "is_mysql_password_encrypted",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ListColumnsRespV2"
                        }
                    }
                }
            }
        },
        "/v2/mysql/instance_connection": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "connect to  mysql instance.",
                "tags": [
                    "mysql"
                ],
                "operationId": "MySQLConnectionV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "mysql host",
                        "name": "mysql_host",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "mysql port",
                        "name": "mysql_port",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "mysql user",
                        "name": "mysql_user",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "mysql password",
                        "name": "mysql_password",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "description": "indecate that mysql password is encrypted or not",
                        "name": "is_mysql_password_encrypted",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ConnectionRespV2"
                        }
                    }
                }
            }
        },
        "/v2/mysql/schemas": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "list schemas of mysql source instance.",
                "tags": [
                    "mysql"
                ],
                "operationId": "ListMysqlSchemasV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "mysql host",
                        "name": "mysql_host",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "mysql port",
                        "name": "mysql_port",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "mysql user",
                        "name": "mysql_user",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "mysql password",
                        "name": "mysql_password",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "mysql character set",
                        "name": "mysql_character_set",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "indecate that mysql password is encrypted or not",
                        "name": "is_mysql_password_encrypted",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ListSchemasRespV2"
                        }
                    }
                }
            }
        },
        "/v2/nodes": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get node list.",
                "tags": [
                    "node"
                ],
                "operationId": "NodeListV2",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.NodeListRespV2"
                        }
                    }
                }
            }
        },
        "/v2/role/create": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "create Role.",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "Role"
                ],
                "operationId": "CreateRoleV2",
                "parameters": [
                    {
                        "description": "Role info",
                        "name": "Role",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.CreateRoleReqV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.CreateRoleRespV2"
                        }
                    }
                }
            }
        },
        "/v2/role/delete": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "delete Role.",
                "consumes": [
                    "application/x-www-form-urlencoded"
                ],
                "tags": [
                    "Role"
                ],
                "operationId": "DeleteRoleV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "tenant",
                        "name": "tenant",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "role name",
                        "name": "name",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.DeleteRoleRespV2"
                        }
                    }
                }
            }
        },
        "/v2/role/list": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get role list.",
                "tags": [
                    "Role"
                ],
                "operationId": "RoleListV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "filter tenant",
                        "name": "filter_tenant",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.RoleListResp"
                        }
                    }
                }
            }
        },
        "/v2/role/update": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update Role info.",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "Role"
                ],
                "operationId": "UpdateRoleV2",
                "parameters": [
                    {
                        "description": "Role info",
                        "name": "Role",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.UpdateRoleReqV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.UpdateRoleRespV2"
                        }
                    }
                }
            }
        },
        "/v2/tenant/list": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get tenant list.",
                "tags": [
                    "user"
                ],
                "operationId": "TenantListV2",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.TenantListResp"
                        }
                    }
                }
            }
        },
        "/v2/user/create": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "create user.",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "operationId": "CreateUserV2",
                "parameters": [
                    {
                        "description": "user info",
                        "name": "user",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.CreateUserReqV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.CreateUserRespV2"
                        }
                    }
                }
            }
        },
        "/v2/user/current_user": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get current user.",
                "tags": [
                    "user"
                ],
                "operationId": "GetCurrentUserV2",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.CurrentUserResp"
                        }
                    }
                }
            }
        },
        "/v2/user/delete": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "delete user.",
                "consumes": [
                    "application/x-www-form-urlencoded"
                ],
                "tags": [
                    "user"
                ],
                "operationId": "DeleteUserV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "tenant",
                        "name": "tenant",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "user name",
                        "name": "username",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.DeleteUserRespV2"
                        }
                    }
                }
            }
        },
        "/v2/user/list": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get user list.",
                "tags": [
                    "user"
                ],
                "operationId": "UserListV2",
                "parameters": [
                    {
                        "type": "string",
                        "description": "filter user name",
                        "name": "filter_username",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter tenant",
                        "name": "filter_tenant",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.UserListResp"
                        }
                    }
                }
            }
        },
        "/v2/user/list_action": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "list user action.",
                "tags": [
                    "user"
                ],
                "operationId": "ListActionV2",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ListActionRespV2"
                        }
                    }
                }
            }
        },
        "/v2/user/reset_password": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "reset user password.",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "operationId": "ResetPasswordV2",
                "parameters": [
                    {
                        "description": "reset user password",
                        "name": "user",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.ResetPasswordReqV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ResetPasswordRespV2"
                        }
                    }
                }
            }
        },
        "/v2/user/update": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update user info.",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "operationId": "UpdateUserV2",
                "parameters": [
                    {
                        "description": "user info",
                        "name": "user",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.UpdateUserReqV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.UpdateUserRespV2"
                        }
                    }
                }
            }
        },
        "/v2/validation/job": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "validate job config.",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "validation"
                ],
                "operationId": "ValidateJobV2",
                "parameters": [
                    {
                        "description": "validate job config",
                        "name": "job_config",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.ValidateJobReqV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ValidateJobRespV2"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "common.JobListItemV2": {
            "type": "object",
            "properties": {
                "allocation_status": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "dst_addr_list": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "dst_database_type": {
                    "type": "string"
                },
                "job_create_time": {
                    "type": "string"
                },
                "job_id": {
                    "type": "string"
                },
                "job_status": {
                    "type": "string"
                },
                "job_steps": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/common.JobStep"
                    }
                },
                "src_addr_list": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "src_database_type": {
                    "type": "string"
                },
                "topic": {
                    "type": "string"
                },
                "user": {
                    "type": "string"
                }
            }
        },
        "common.JobStep": {
            "type": "object",
            "properties": {
                "job_create_time": {
                    "type": "string"
                },
                "step_name": {
                    "type": "string"
                },
                "step_schedule": {
                    "type": "number"
                },
                "step_status": {
                    "type": "string"
                }
            }
        },
        "common.Role": {
            "type": "object",
            "properties": {
                "authority": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "object_type": {
                    "type": "string"
                },
                "object_users": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "tenant": {
                    "type": "string"
                }
            }
        },
        "common.User": {
            "type": "object",
            "properties": {
                "create_time": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "remark": {
                    "type": "string"
                },
                "role": {
                    "type": "string"
                },
                "tenant": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "models.BasicTaskProfile": {
            "type": "object",
            "properties": {
                "configuration": {
                    "$ref": "#/definitions/models.Configuration"
                },
                "connection_info": {
                    "$ref": "#/definitions/models.ConnectionInfo"
                },
                "dtle_node_infos": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.DtleNodeInfo"
                    }
                },
                "job_base_info": {
                    "$ref": "#/definitions/models.JobBaseInfo"
                },
                "replicate_do_db": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.DataSourceConfig"
                    }
                },
                "replicate_ignore_db": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.DataSourceConfig"
                    }
                }
            }
        },
        "models.BinlogValidation": {
            "type": "object",
            "properties": {
                "error": {
                    "description": "Error is a string version of any error that may have occured",
                    "type": "string"
                },
                "validated": {
                    "type": "boolean"
                }
            }
        },
        "models.BufferStat": {
            "type": "object",
            "properties": {
                "applier_tx_queue_size": {
                    "type": "integer"
                },
                "binlog_event_queue_size": {
                    "type": "integer"
                },
                "extractor_tx_queue_size": {
                    "type": "integer"
                },
                "send_by_size_full": {
                    "type": "integer"
                },
                "send_by_timeout": {
                    "type": "integer"
                }
            }
        },
        "models.ButtonItem": {
            "type": "object",
            "properties": {
                "action": {
                    "type": "string"
                },
                "text_cn": {
                    "type": "string"
                },
                "text_en": {
                    "type": "string"
                },
                "uri": {
                    "type": "string"
                }
            }
        },
        "models.CaptchaRespV2": {
            "type": "object",
            "properties": {
                "data_scheme": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "models.Configuration": {
            "type": "object",
            "properties": {
                "dst_config": {
                    "$ref": "#/definitions/models.DstConfig"
                },
                "fail_over": {
                    "type": "boolean"
                },
                "retry_times": {
                    "type": "integer"
                },
                "src_config": {
                    "$ref": "#/definitions/models.SrcConfig"
                }
            }
        },
        "models.ConnectionInfo": {
            "type": "object",
            "properties": {
                "dst_data_base": {
                    "$ref": "#/definitions/models.DatabaseConnectionConfig"
                },
                "dst_kafka": {
                    "$ref": "#/definitions/models.KafkaDestTaskConfig"
                },
                "src_data_base": {
                    "$ref": "#/definitions/models.DatabaseConnectionConfig"
                }
            }
        },
        "models.ConnectionRespV2": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "models.ConnectionValidation": {
            "type": "object",
            "properties": {
                "error": {
                    "description": "Error is a string version of any error that may have occured",
                    "type": "string"
                },
                "validated": {
                    "type": "boolean"
                }
            }
        },
        "models.CreateOrUpdateMysqlToKafkaJobParamV2": {
            "type": "object",
            "required": [
                "dest_task",
                "job_id",
                "src_task"
            ],
            "properties": {
                "dest_task": {
                    "$ref": "#/definitions/models.KafkaDestTaskConfig"
                },
                "failover": {
                    "description": "failover default:true",
                    "type": "boolean",
                    "example": true
                },
                "is_password_encrypted": {
                    "type": "boolean"
                },
                "job_id": {
                    "type": "string"
                },
                "retry": {
                    "type": "integer"
                },
                "src_task": {
                    "$ref": "#/definitions/models.SrcTaskConfig"
                },
                "task_step_name": {
                    "type": "string"
                }
            }
        },
        "models.CreateOrUpdateMysqlToKafkaJobRespV2": {
            "type": "object",
            "required": [
                "dest_task",
                "job_id",
                "src_task"
            ],
            "properties": {
                "dest_task": {
                    "$ref": "#/definitions/models.KafkaDestTaskConfig"
                },
                "eval_create_index": {
                    "type": "integer"
                },
                "failover": {
                    "description": "failover default:true",
                    "type": "boolean",
                    "example": true
                },
                "is_password_encrypted": {
                    "type": "boolean"
                },
                "job_id": {
                    "type": "string"
                },
                "job_modify_index": {
                    "type": "integer"
                },
                "message": {
                    "type": "string"
                },
                "retry": {
                    "type": "integer"
                },
                "src_task": {
                    "$ref": "#/definitions/models.SrcTaskConfig"
                },
                "task_step_name": {
                    "type": "string"
                }
            }
        },
        "models.CreateOrUpdateMysqlToMysqlJobParamV2": {
            "type": "object",
            "required": [
                "dest_task",
                "job_id",
                "src_task"
            ],
            "properties": {
                "dest_task": {
                    "$ref": "#/definitions/models.DestTaskConfig"
                },
                "failover": {
                    "type": "boolean",
                    "example": true
                },
                "is_password_encrypted": {
                    "type": "boolean"
                },
                "job_id": {
                    "type": "string"
                },
                "retry": {
                    "type": "integer"
                },
                "reverse": {
                    "type": "boolean"
                },
                "src_task": {
                    "$ref": "#/definitions/models.SrcTaskConfig"
                },
                "task_step_name": {
                    "type": "string"
                }
            }
        },
        "models.CreateOrUpdateMysqlToMysqlJobRespV2": {
            "type": "object",
            "required": [
                "dest_task",
                "job_id",
                "src_task"
            ],
            "properties": {
                "dest_task": {
                    "$ref": "#/definitions/models.DestTaskConfig"
                },
                "eval_create_index": {
                    "type": "integer"
                },
                "failover": {
                    "type": "boolean",
                    "example": true
                },
                "is_password_encrypted": {
                    "type": "boolean"
                },
                "job_id": {
                    "type": "string"
                },
                "job_modify_index": {
                    "type": "integer"
                },
                "message": {
                    "type": "string"
                },
                "retry": {
                    "type": "integer"
                },
                "reverse": {
                    "type": "boolean"
                },
                "src_task": {
                    "$ref": "#/definitions/models.SrcTaskConfig"
                },
                "task_step_name": {
                    "type": "string"
                }
            }
        },
        "models.CreateRoleReqV2": {
            "type": "object",
            "properties": {
                "authority": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "operation_object_type": {
                    "type": "string"
                },
                "operation_users": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "tenant": {
                    "type": "string"
                }
            }
        },
        "models.CreateRoleRespV2": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "models.CreateUserReqV2": {
            "type": "object",
            "required": [
                "pass_word",
                "role",
                "tenant",
                "username"
            ],
            "properties": {
                "pass_word": {
                    "type": "string"
                },
                "remark": {
                    "type": "string"
                },
                "role": {
                    "type": "string"
                },
                "tenant": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "models.CreateUserRespV2": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "models.CurrentCoordinates": {
            "type": "object",
            "properties": {
                "file": {
                    "type": "string"
                },
                "gtid_set": {
                    "type": "string"
                },
                "position": {
                    "type": "integer"
                },
                "read_master_log_pos": {
                    "type": "integer"
                },
                "relay_master_log_file": {
                    "type": "string"
                },
                "retrieved_gtid_set": {
                    "type": "string"
                }
            }
        },
        "models.CurrentUserResp": {
            "type": "object",
            "properties": {
                "current_user": {
                    "$ref": "#/definitions/common.User"
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "models.DataSourceConfig": {
            "type": "object",
            "properties": {
                "table_schema": {
                    "type": "string"
                },
                "table_schema_regex": {
                    "type": "string"
                },
                "table_schema_rename": {
                    "type": "string"
                },
                "tables": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.TableConfig"
                    }
                }
            }
        },
        "models.DatabaseConnectionConfig": {
            "type": "object",
            "required": [
                "database_type",
                "host",
                "password",
                "port",
                "user"
            ],
            "properties": {
                "database_type": {
                    "type": "string"
                },
                "host": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "port": {
                    "type": "integer"
                },
                "service_name": {
                    "type": "string"
                },
                "user": {
                    "type": "string"
                }
            }
        },
        "models.DelayCount": {
            "type": "object",
            "properties": {
                "num": {
                    "type": "integer"
                },
                "time": {
                    "type": "integer"
                }
            }
        },
        "models.DeleteJobRespV2": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "models.DeleteRoleRespV2": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "models.DeleteUserRespV2": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "models.DestTaskConfig": {
            "type": "object",
            "required": [
                "connection_config",
                "task_name"
            ],
            "properties": {
                "connection_config": {
                    "$ref": "#/definitions/models.DatabaseConnectionConfig"
                },
                "database_type": {
                    "type": "string"
                },
                "mysql_dest_task_config": {
                    "$ref": "#/definitions/models.MysqlDestTaskConfig"
                },
                "node_id": {
                    "type": "string"
                },
                "task_name": {
                    "type": "string"
                }
            }
        },
        "models.DstConfig": {
            "type": "object",
            "properties": {
                "mysql_dest_task_config": {
                    "$ref": "#/definitions/models.MysqlDestTaskConfig"
                }
            }
        },
        "models.DtleNodeInfo": {
            "type": "object",
            "properties": {
                "data_source": {
                    "type": "string"
                },
                "node_addr": {
                    "type": "string"
                },
                "node_id": {
                    "type": "string"
                },
                "source": {
                    "type": "string"
                }
            }
        },
        "models.DumpProgress": {
            "type": "object",
            "properties": {
                "exec_row_count": {
                    "type": "integer"
                },
                "total_row_count": {
                    "type": "integer"
                }
            }
        },
        "models.GetTaskProgressRespV2": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                },
                "tasks_status": {
                    "$ref": "#/definitions/models.TaskProgress"
                }
            }
        },
        "models.GetUserLoginResV2": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/models.UserLoginResV2"
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "models.GtidModeValidation": {
            "type": "object",
            "properties": {
                "error": {
                    "description": "Error is a string version of any error that may have occured",
                    "type": "string"
                },
                "validated": {
                    "type": "boolean"
                }
            }
        },
        "models.JobBaseInfo": {
            "type": "object",
            "properties": {
                "delay": {
                    "type": "integer"
                },
                "dump_progress": {
                    "$ref": "#/definitions/models.DumpProgress"
                },
                "job_create_time": {
                    "type": "string"
                },
                "job_id": {
                    "type": "string"
                },
                "job_stage": {
                    "type": "string"
                },
                "job_status": {
                    "type": "string"
                },
                "job_steps": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/common.JobStep"
                    }
                },
                "subscription_topic": {
                    "type": "string"
                }
            }
        },
        "models.JobListRespV2": {
            "type": "object",
            "properties": {
                "jobs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/common.JobListItemV2"
                    }
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "models.JobPositionResp": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                },
                "position": {
                    "type": "string"
                }
            }
        },
        "models.KafkaDestTaskConfig": {
            "type": "object",
            "required": [
                "kafka_broker_addrs",
                "kafka_topic",
                "task_name"
            ],
            "properties": {
                "kafka_broker_addrs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "127.0.0.1:9092"
                    ]
                },
                "kafka_date_time_zone": {
                    "type": "string"
                },
                "kafka_topic": {
                    "type": "string"
                },
                "message_group_max_size": {
                    "type": "integer"
                },
                "message_group_timeout": {
                    "type": "integer"
                },
                "node_id": {
                    "type": "string"
                },
                "task_name": {
                    "type": "string"
                }
            }
        },
        "models.ListActionRespV2": {
            "type": "object",
            "properties": {
                "authority": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.MenuItem"
                    }
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "models.ListColumnsRespV2": {
            "type": "object",
            "properties": {
                "columns": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "models.ListSchemasRespV2": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                },
                "schemas": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.SchemaItem"
                    }
                }
            }
        },
        "models.LoginWithoutVerifyCodeReqV2": {
            "type": "object",
            "required": [
                "password",
                "tenant",
                "username"
            ],
            "properties": {
                "password": {
                    "type": "string",
                    "example": "123456"
                },
                "tenant": {
                    "type": "string",
                    "example": "test"
                },
                "username": {
                    "type": "string",
                    "example": "test"
                }
            }
        },
        "models.MenuItem": {
            "type": "object",
            "properties": {
                "admin_only": {
                    "type": "boolean"
                },
                "id": {
                    "type": "integer"
                },
                "menu_level": {
                    "type": "integer"
                },
                "menu_url": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "operations": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.ButtonItem"
                    }
                },
                "parent_id": {
                    "type": "integer"
                },
                "text_cn": {
                    "type": "string"
                },
                "text_en": {
                    "type": "string"
                }
            }
        },
        "models.MysqlDestTaskConfig": {
            "type": "object",
            "properties": {
                "bulk_insert1": {
                    "type": "integer"
                },
                "bulk_insert2": {
                    "type": "integer"
                },
                "dependency_history_size": {
                    "type": "integer"
                },
                "parallel_workers": {
                    "type": "integer"
                },
                "retry_tx_limit": {
                    "type": "integer"
                },
                "set_gtid_next": {
                    "type": "boolean"
                },
                "use_my_sql_dependency": {
                    "type": "boolean"
                }
            }
        },
        "models.MysqlSrcTaskConfig": {
            "type": "object",
            "properties": {
                "auto_gtid": {
                    "type": "boolean"
                },
                "binlog_relay": {
                    "type": "boolean"
                },
                "dump_entry_limit": {
                    "type": "integer"
                },
                "expand_syntax_support": {
                    "type": "boolean"
                },
                "gtid": {
                    "type": "string"
                },
                "two_way_sync": {
                    "type": "boolean"
                },
                "two_way_sync_gtid": {
                    "type": "string"
                },
                "wait_on_job": {
                    "type": "string"
                }
            }
        },
        "models.MysqlTaskValidationReport": {
            "type": "object",
            "properties": {
                "binlog_validation": {
                    "$ref": "#/definitions/models.BinlogValidation"
                },
                "connection_validation": {
                    "$ref": "#/definitions/models.ConnectionValidation"
                },
                "gtid_mode_validation": {
                    "$ref": "#/definitions/models.GtidModeValidation"
                },
                "privileges_validation": {
                    "$ref": "#/definitions/models.PrivilegesValidation"
                },
                "server_id_validation": {
                    "$ref": "#/definitions/models.ServerIDValidation"
                },
                "task_name": {
                    "type": "string"
                }
            }
        },
        "models.MysqlToKafkaJobDetailRespV2": {
            "type": "object",
            "properties": {
                "basic_task_profile": {
                    "$ref": "#/definitions/models.BasicTaskProfile"
                },
                "message": {
                    "type": "string"
                },
                "task_logs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.TaskLog"
                    }
                }
            }
        },
        "models.MysqlToMysqlJobDetailRespV2": {
            "type": "object",
            "properties": {
                "basic_task_profile": {
                    "$ref": "#/definitions/models.BasicTaskProfile"
                },
                "message": {
                    "type": "string"
                },
                "task_logs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.TaskLog"
                    }
                }
            }
        },
        "models.NatsMessageStatistics": {
            "type": "object",
            "properties": {
                "in_bytes": {
                    "type": "integer"
                },
                "in_messages": {
                    "type": "integer"
                },
                "out_bytes": {
                    "type": "integer"
                },
                "out_messages": {
                    "type": "integer"
                },
                "reconnects": {
                    "type": "integer"
                }
            }
        },
        "models.NodeListItemV2": {
            "type": "object",
            "properties": {
                "datacenter": {
                    "type": "string"
                },
                "dtle_version": {
                    "type": "string"
                },
                "leader": {
                    "type": "boolean"
                },
                "member": {
                    "type": "boolean"
                },
                "node_address": {
                    "type": "string"
                },
                "node_id": {
                    "type": "string"
                },
                "node_name": {
                    "type": "string"
                },
                "node_status": {
                    "type": "string"
                },
                "node_status_description": {
                    "type": "string"
                },
                "nomad_version": {
                    "type": "string"
                }
            }
        },
        "models.NodeListRespV2": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                },
                "nodes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.NodeListItemV2"
                    }
                }
            }
        },
        "models.OracleSrcTaskConfig": {
            "type": "object",
            "properties": {
                "scn": {
                    "type": "integer"
                }
            }
        },
        "models.PauseJobRespV2": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "models.PrivilegesValidation": {
            "type": "object",
            "properties": {
                "error": {
                    "description": "Error is a string version of any error that may have occured",
                    "type": "string"
                },
                "validated": {
                    "type": "boolean"
                }
            }
        },
        "models.ResetPasswordReqV2": {
            "type": "object",
            "required": [
                "current_user_password",
                "password",
                "tenant",
                "username"
            ],
            "properties": {
                "current_user_password": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "tenant": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "models.ResetPasswordRespV2": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "models.ResumeJobRespV2": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "models.ReverseConfig": {
            "type": "object",
            "properties": {
                "dest_user": {
                    "type": "string"
                },
                "dst_pwd": {
                    "type": "string"
                },
                "is_mysql_password_encrypted": {
                    "type": "boolean"
                },
                "src_pwd": {
                    "type": "string"
                },
                "src_user": {
                    "type": "string"
                }
            }
        },
        "models.ReverseJobReq": {
            "type": "object",
            "required": [
                "job_id"
            ],
            "properties": {
                "job_id": {
                    "type": "string"
                },
                "reverse_config": {
                    "$ref": "#/definitions/models.ReverseConfig"
                }
            }
        },
        "models.ReverseJobResp": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "models.ReverseStartRespV2": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "models.RoleListResp": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                },
                "role_list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/common.Role"
                    }
                }
            }
        },
        "models.SchemaItem": {
            "type": "object",
            "properties": {
                "schema_name": {
                    "type": "string"
                },
                "tables": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.TableItem"
                    }
                }
            }
        },
        "models.ServerIDValidation": {
            "type": "object",
            "properties": {
                "error": {
                    "description": "Error is a string version of any error that may have occured",
                    "type": "string"
                },
                "validated": {
                    "type": "boolean"
                }
            }
        },
        "models.SrcConfig": {
            "type": "object",
            "properties": {
                "chunk_size": {
                    "type": "integer"
                },
                "drop_table_if_exists": {
                    "type": "boolean"
                },
                "group_max_size": {
                    "type": "integer"
                },
                "group_timeout": {
                    "type": "integer"
                },
                "mysql_src_task_config": {
                    "$ref": "#/definitions/models.MysqlSrcTaskConfig"
                },
                "oracle_src_task_config": {
                    "$ref": "#/definitions/models.OracleSrcTaskConfig"
                },
                "repl_chan_buffer_size": {
                    "type": "integer"
                },
                "skip_create_db_table": {
                    "type": "boolean"
                },
                "sql_filter": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "models.SrcTaskConfig": {
            "type": "object",
            "required": [
                "connection_config",
                "task_name"
            ],
            "properties": {
                "chunk_size": {
                    "type": "integer"
                },
                "connection_config": {
                    "$ref": "#/definitions/models.DatabaseConnectionConfig"
                },
                "drop_table_if_exists": {
                    "type": "boolean"
                },
                "group_max_size": {
                    "type": "integer"
                },
                "group_timeout": {
                    "type": "integer"
                },
                "mysql_src_task_config": {
                    "$ref": "#/definitions/models.MysqlSrcTaskConfig"
                },
                "node_id": {
                    "type": "string"
                },
                "oracle_src_task_config": {
                    "$ref": "#/definitions/models.OracleSrcTaskConfig"
                },
                "repl_chan_buffer_size": {
                    "type": "integer"
                },
                "replicate_do_db": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.DataSourceConfig"
                    }
                },
                "replicate_ignore_db": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.DataSourceConfig"
                    }
                },
                "skip_create_db_table": {
                    "type": "boolean"
                },
                "sql_filter": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "task_name": {
                    "type": "string"
                }
            }
        },
        "models.TableConfig": {
            "type": "object",
            "properties": {
                "column_map_from": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "column_map_to": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "table_name": {
                    "type": "string"
                },
                "table_regex": {
                    "type": "string"
                },
                "table_rename": {
                    "type": "string"
                },
                "where": {
                    "type": "string"
                }
            }
        },
        "models.TableItem": {
            "type": "object",
            "properties": {
                "table_name": {
                    "type": "string"
                }
            }
        },
        "models.TaskEvent": {
            "type": "object",
            "properties": {
                "event_type": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "setup_error": {
                    "type": "string"
                },
                "time": {
                    "type": "string"
                }
            }
        },
        "models.TaskLog": {
            "type": "object",
            "properties": {
                "address": {
                    "type": "string"
                },
                "allocation_id": {
                    "type": "string"
                },
                "node_id": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "target": {
                    "type": "string"
                },
                "task_events": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.TaskEvent"
                    }
                }
            }
        },
        "models.TaskProgress": {
            "type": "object",
            "properties": {
                "ETA": {
                    "type": "string"
                },
                "backlog": {
                    "type": "string"
                },
                "buffer_status": {
                    "$ref": "#/definitions/models.BufferStat"
                },
                "current_coordinates": {
                    "$ref": "#/definitions/models.CurrentCoordinates"
                },
                "delay_count": {
                    "$ref": "#/definitions/models.DelayCount"
                },
                "exec_master_row_count": {
                    "type": "integer"
                },
                "exec_master_tx_count": {
                    "type": "integer"
                },
                "nats_message_status": {
                    "$ref": "#/definitions/models.NatsMessageStatistics"
                },
                "progress_PCT": {
                    "type": "string"
                },
                "read_master_row_count": {
                    "type": "integer"
                },
                "read_master_tx_count": {
                    "type": "integer"
                },
                "stage": {
                    "type": "string"
                },
                "throughput_status": {
                    "$ref": "#/definitions/models.ThroughputStat"
                },
                "timestamp": {
                    "type": "integer"
                }
            }
        },
        "models.TenantListResp": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                },
                "tenant_list": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "models.ThroughputStat": {
            "type": "object",
            "properties": {
                "num": {
                    "type": "integer"
                },
                "time": {
                    "type": "integer"
                }
            }
        },
        "models.UpdataLogLevelRespV2": {
            "type": "object",
            "properties": {
                "dtle_log_level": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "models.UpdateRoleReqV2": {
            "type": "object",
            "properties": {
                "authority": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "operation_object_type": {
                    "type": "string"
                },
                "operation_users": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "tenant": {
                    "type": "string"
                }
            }
        },
        "models.UpdateRoleRespV2": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "models.UpdateUserReqV2": {
            "type": "object",
            "required": [
                "role",
                "tenant",
                "username"
            ],
            "properties": {
                "remark": {
                    "type": "string"
                },
                "role": {
                    "type": "string"
                },
                "tenant": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "models.UpdateUserRespV2": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "models.UserListResp": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                },
                "user_list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/common.User"
                    }
                }
            }
        },
        "models.UserLoginReqV2": {
            "type": "object",
            "required": [
                "captcha",
                "captcha_id",
                "password",
                "tenant",
                "username"
            ],
            "properties": {
                "captcha": {
                    "type": "string",
                    "example": "01722"
                },
                "captcha_id": {
                    "type": "string",
                    "example": "Md9kzZQn9xohumhOTc81"
                },
                "password": {
                    "type": "string",
                    "example": "123456"
                },
                "tenant": {
                    "type": "string",
                    "example": "test"
                },
                "username": {
                    "type": "string",
                    "example": "test"
                }
            }
        },
        "models.UserLoginResV2": {
            "type": "object",
            "properties": {
                "token": {
                    "type": "string",
                    "example": "this is a jwt token string"
                }
            }
        },
        "models.ValidateJobReqV2": {
            "type": "object",
            "required": [
                "dest_task",
                "job_id",
                "src_task"
            ],
            "properties": {
                "dest_task": {
                    "$ref": "#/definitions/models.DestTaskConfig"
                },
                "is_password_encrypted": {
                    "type": "boolean"
                },
                "job_id": {
                    "type": "string"
                },
                "src_task": {
                    "$ref": "#/definitions/models.SrcTaskConfig"
                }
            }
        },
        "models.ValidateJobRespV2": {
            "type": "object",
            "properties": {
                "driver_config_validated": {
                    "description": "DriverConfigValidated indicates whether the agent validated the driver",
                    "type": "boolean"
                },
                "job_validation_error": {
                    "type": "string"
                },
                "job_validation_warning": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "mysql_task_validation_report": {
                    "description": "config",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.MysqlTaskValidationReport"
                    }
                }
            }
        }
    },
    "securityDefinitions": {
        "ApiKeyAuth": {
            "type": "apiKey",
            "name": "Authorization",
            "in": "header"
        }
    }
}`

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:     "2.0",
	Host:        "",
	BasePath:    "/",
	Schemes:     []string{},
	Title:       "dtle API Docs",
	Description: "This is a sample server for dev.",
}

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{})
}
