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

package docs

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

	"github.com/alecthomas/template"
	"github.com/swaggo/swag"
)

var doc = `{
    "schemes": {{ marshal .Schemes }},
    "swagger": "2.0",
    "info": {
        "description": "{{.Description}}",
        "title": "{{.Title}}",
        "contact": {},
        "license": {},
        "version": "{{.Version}}"
    },
    "host": "{{.Host}}",
    "basePath": "{{.BasePath}}",
    "paths": {
        "/admin/admin_info": {
            "get": {
                "description": "管理员信息",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "管理员接口"
                ],
                "summary": "管理员信息",
                "operationId": "/admin/admin_info",
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/dto.AdminInfoOutput"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/admin/change_pwd": {
            "post": {
                "description": "修改密码",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "管理员接口"
                ],
                "summary": "修改密码",
                "operationId": "/admin/change_pwd",
                "parameters": [
                    {
                        "description": "body",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.ChangePwdInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/admin_login/login": {
            "post": {
                "description": "管理员登陆",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "管理员接口"
                ],
                "summary": "管理员登陆",
                "operationId": "/admin_login/login",
                "parameters": [
                    {
                        "description": "body",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.AdminLoginInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/dto.AdminLoginOutput"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/admin_login/logout": {
            "get": {
                "description": "管理员退出",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "管理员接口"
                ],
                "summary": "管理员退出",
                "operationId": "/admin_login/logout",
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/app/app_add": {
            "post": {
                "description": "租户添加",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "租户管理"
                ],
                "summary": "租户添加",
                "operationId": "/app/app_add",
                "parameters": [
                    {
                        "description": "body",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.APPAddHttpInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/app/app_delete": {
            "get": {
                "description": "租户删除",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "租户管理"
                ],
                "summary": "租户删除",
                "operationId": "/app/app_delete",
                "parameters": [
                    {
                        "type": "string",
                        "description": "租户ID",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/app/app_detail": {
            "get": {
                "description": "租户详情",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "租户管理"
                ],
                "summary": "租户详情",
                "operationId": "/app/app_detail",
                "parameters": [
                    {
                        "type": "string",
                        "description": "租户ID",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/dao.App"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/app/app_list": {
            "get": {
                "description": "租户列表",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "租户管理"
                ],
                "summary": "租户列表",
                "operationId": "/app/app_list",
                "parameters": [
                    {
                        "type": "string",
                        "description": "关键词",
                        "name": "info",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "每页多少条",
                        "name": "page_size",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "页码",
                        "name": "page_no",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/dto.APPListOutput"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/app/app_stat": {
            "get": {
                "description": "租户统计",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "租户管理"
                ],
                "summary": "租户统计",
                "operationId": "/app/app_stat",
                "parameters": [
                    {
                        "type": "string",
                        "description": "租户ID",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/dto.StatisticsOutput"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/app/app_update": {
            "post": {
                "description": "租户更新",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "租户管理"
                ],
                "summary": "租户更新",
                "operationId": "/app/app_update",
                "parameters": [
                    {
                        "description": "body",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.APPUpdateHttpInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/app/tokens": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    },
                    {
                        "OAuth2Application": [
                            "write",
                            "admin"
                        ]
                    }
                ],
                "description": "租户详情",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "租户管理"
                ],
                "summary": "租户详情",
                "operationId": "/app/app_detail",
                "parameters": [
                    {
                        "type": "string",
                        "description": "租户ID",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/dashboard/flow_stat": {
            "get": {
                "description": "服务统计",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "首页大盘"
                ],
                "summary": "服务统计",
                "operationId": "/dashboard/flow_stat",
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/dto.ServiceStatOutput"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/dashboard/panel_group_data": {
            "get": {
                "description": "指标统计",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "首页大盘"
                ],
                "summary": "指标统计",
                "operationId": "/dashboard/panel_group_data",
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/dto.PanelGroupDataOutput"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/dashboard/service_stat": {
            "get": {
                "description": "服务统计",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "首页大盘"
                ],
                "summary": "服务统计",
                "operationId": "/dashboard/service_stat",
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/dto.DashServiceStatOutput"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/service/service_add_grpc": {
            "post": {
                "description": "grpc服务添加",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "服务管理"
                ],
                "summary": "grpc服务添加",
                "operationId": "/service/service_add_grpc",
                "parameters": [
                    {
                        "description": "body",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.ServiceAddGrpcInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/service/service_add_http": {
            "post": {
                "description": "添加HTTP服务",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "服务管理"
                ],
                "summary": "添加HTTP服务",
                "operationId": "/service/service_add_http",
                "parameters": [
                    {
                        "description": "body",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.ServiceAddHTTPInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/service/service_add_tcp": {
            "post": {
                "description": "tcp服务添加",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "服务管理"
                ],
                "summary": "tcp服务添加",
                "operationId": "/service/service_add_tcp",
                "parameters": [
                    {
                        "description": "body",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.ServiceAddTcpInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/service/service_delete": {
            "get": {
                "description": "服务删除",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "服务管理"
                ],
                "summary": "服务删除",
                "operationId": "/service/service_delete",
                "parameters": [
                    {
                        "type": "string",
                        "description": "服务ID",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/service/service_detail": {
            "get": {
                "description": "服务详情",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "服务管理"
                ],
                "summary": "服务详情",
                "operationId": "/service/service_detail",
                "parameters": [
                    {
                        "type": "string",
                        "description": "服务ID",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/dao.ServiceDetail"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/service/service_list": {
            "get": {
                "description": "服务列表",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "服务管理"
                ],
                "summary": "服务列表",
                "operationId": "/service/service_list",
                "parameters": [
                    {
                        "type": "string",
                        "description": "关键词",
                        "name": "info",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "每页个数",
                        "name": "page_size",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "当前页数",
                        "name": "page_no",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/dto.ServiceListOutput"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/service/service_stat": {
            "get": {
                "description": "服务统计",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "服务管理"
                ],
                "summary": "服务统计",
                "operationId": "/service/service_stat",
                "parameters": [
                    {
                        "type": "string",
                        "description": "服务ID",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/dto.ServiceStatOutput"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/service/service_update_grpc": {
            "post": {
                "description": "grpc服务更新",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "服务管理"
                ],
                "summary": "grpc服务更新",
                "operationId": "/service/service_update_grpc",
                "parameters": [
                    {
                        "description": "body",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.ServiceUpdateGrpcInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/service/service_update_http": {
            "post": {
                "description": "修改HTTP服务",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "服务管理"
                ],
                "summary": "修改HTTP服务",
                "operationId": "/service/service_update_http",
                "parameters": [
                    {
                        "description": "body",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.ServiceUpdateHTTPInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/service/service_update_tcp": {
            "post": {
                "description": "tcp服务更新",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "服务管理"
                ],
                "summary": "tcp服务更新",
                "operationId": "/service/service_update_tcp",
                "parameters": [
                    {
                        "description": "body",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.ServiceUpdateTcpInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/middleware.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "dao.AccessControl": {
            "type": "object",
            "properties": {
                "black_list": {
                    "type": "string"
                },
                "clientip_flow_limit": {
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "open_auth": {
                    "type": "integer"
                },
                "service_flow_limit": {
                    "type": "integer"
                },
                "service_id": {
                    "type": "integer"
                },
                "white_host_name": {
                    "type": "string"
                },
                "white_list": {
                    "type": "string"
                }
            }
        },
        "dao.App": {
            "type": "object",
            "properties": {
                "app_id": {
                    "type": "string"
                },
                "create_at": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "is_delete": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "qpd": {
                    "type": "integer"
                },
                "qps": {
                    "type": "integer"
                },
                "secret": {
                    "type": "string"
                },
                "update_at": {
                    "type": "string"
                },
                "white_ips": {
                    "type": "string"
                }
            }
        },
        "dao.GrpcRule": {
            "type": "object",
            "properties": {
                "header_transfor": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "port": {
                    "type": "integer"
                },
                "service_id": {
                    "type": "integer"
                }
            }
        },
        "dao.HttpRule": {
            "type": "object",
            "properties": {
                "header_transfor": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "need_https": {
                    "type": "integer"
                },
                "need_strip_uri": {
                    "type": "integer"
                },
                "need_websocket": {
                    "type": "integer"
                },
                "rule": {
                    "type": "string"
                },
                "rule_type": {
                    "type": "integer"
                },
                "service_id": {
                    "type": "integer"
                },
                "url_rewrite": {
                    "type": "string"
                }
            }
        },
        "dao.LoadBalance": {
            "type": "object",
            "properties": {
                "check_interval": {
                    "type": "integer"
                },
                "check_method": {
                    "type": "integer"
                },
                "check_timeout": {
                    "type": "integer"
                },
                "forbid_list": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "ip_list": {
                    "type": "string"
                },
                "round_type": {
                    "type": "integer"
                },
                "service_id": {
                    "type": "integer"
                },
                "upstream_connect_timeout": {
                    "type": "integer"
                },
                "upstream_header_timeout": {
                    "type": "integer"
                },
                "upstream_idle_timeout": {
                    "type": "integer"
                },
                "upstream_max_idle": {
                    "type": "integer"
                },
                "weight_list": {
                    "type": "string"
                }
            }
        },
        "dao.ServiceDetail": {
            "type": "object",
            "properties": {
                "access_control": {
                    "type": "object",
                    "$ref": "#/definitions/dao.AccessControl"
                },
                "grpc_rule": {
                    "type": "object",
                    "$ref": "#/definitions/dao.GrpcRule"
                },
                "http_rule": {
                    "type": "object",
                    "$ref": "#/definitions/dao.HttpRule"
                },
                "info": {
                    "type": "object",
                    "$ref": "#/definitions/dao.ServiceInfo"
                },
                "load_balance": {
                    "type": "object",
                    "$ref": "#/definitions/dao.LoadBalance"
                },
                "tcp_rule": {
                    "type": "object",
                    "$ref": "#/definitions/dao.TcpRule"
                }
            }
        },
        "dao.ServiceInfo": {
            "type": "object",
            "properties": {
                "create_at": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "is_delete": {
                    "type": "integer"
                },
                "load_type": {
                    "type": "integer"
                },
                "service_desc": {
                    "type": "string"
                },
                "service_name": {
                    "type": "string"
                },
                "update_at": {
                    "type": "string"
                }
            }
        },
        "dao.TcpRule": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                },
                "port": {
                    "type": "integer"
                },
                "service_id": {
                    "type": "integer"
                }
            }
        },
        "dto.APPAddHttpInput": {
            "type": "object",
            "required": [
                "app_id",
                "name"
            ],
            "properties": {
                "app_id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "qpd": {
                    "type": "integer"
                },
                "qps": {
                    "type": "integer"
                },
                "secret": {
                    "type": "string"
                },
                "white_ips": {
                    "type": "string"
                }
            }
        },
        "dto.APPListItemOutput": {
            "type": "object",
            "properties": {
                "app_id": {
                    "type": "string"
                },
                "create_at": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "is_delete": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "qpd": {
                    "type": "integer"
                },
                "qps": {
                    "type": "integer"
                },
                "real_qpd": {
                    "type": "integer"
                },
                "real_qps": {
                    "type": "integer"
                },
                "secret": {
                    "type": "string"
                },
                "update_at": {
                    "type": "string"
                },
                "white_ips": {
                    "type": "string"
                }
            }
        },
        "dto.APPListOutput": {
            "type": "object",
            "properties": {
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.APPListItemOutput"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "dto.APPUpdateHttpInput": {
            "type": "object",
            "required": [
                "id",
                "name",
                "secret"
            ],
            "properties": {
                "app_id": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "qpd": {
                    "type": "integer"
                },
                "qps": {
                    "type": "integer"
                },
                "secret": {
                    "type": "string"
                },
                "white_ips": {
                    "type": "string"
                }
            }
        },
        "dto.AdminInfoOutput": {
            "type": "object",
            "properties": {
                "avatar": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "introduction": {
                    "type": "string"
                },
                "login_time": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "roles": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "dto.AdminLoginInput": {
            "type": "object",
            "required": [
                "password",
                "username"
            ],
            "properties": {
                "password": {
                    "description": "密码",
                    "type": "string",
                    "example": "123456"
                },
                "username": {
                    "description": "管理员用户名",
                    "type": "string",
                    "example": "admin"
                }
            }
        },
        "dto.AdminLoginOutput": {
            "type": "object",
            "properties": {
                "token": {
                    "description": "token",
                    "type": "string",
                    "example": "token"
                }
            }
        },
        "dto.ChangePwdInput": {
            "type": "object",
            "required": [
                "password"
            ],
            "properties": {
                "password": {
                    "description": "密码",
                    "type": "string",
                    "example": "123456"
                }
            }
        },
        "dto.DashServiceStatItemOutput": {
            "type": "object",
            "properties": {
                "load_type": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "value": {
                    "type": "integer"
                }
            }
        },
        "dto.DashServiceStatOutput": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.DashServiceStatItemOutput"
                    }
                },
                "legend": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "dto.PanelGroupDataOutput": {
            "type": "object",
            "properties": {
                "appNum": {
                    "type": "integer"
                },
                "currentQps": {
                    "type": "integer"
                },
                "serviceNum": {
                    "type": "integer"
                },
                "todayRequestNum": {
                    "type": "integer"
                }
            }
        },
        "dto.ServiceAddGrpcInput": {
            "type": "object",
            "required": [
                "ip_list",
                "port",
                "service_desc",
                "service_name",
                "weight_list"
            ],
            "properties": {
                "black_list": {
                    "type": "string"
                },
                "clientip_flow_limit": {
                    "type": "integer"
                },
                "forbid_list": {
                    "type": "string"
                },
                "header_transfor": {
                    "type": "string"
                },
                "ip_list": {
                    "type": "string"
                },
                "open_auth": {
                    "type": "integer"
                },
                "port": {
                    "type": "integer"
                },
                "round_type": {
                    "type": "integer"
                },
                "service_desc": {
                    "type": "string"
                },
                "service_flow_limit": {
                    "type": "integer"
                },
                "service_name": {
                    "type": "string"
                },
                "weight_list": {
                    "type": "string"
                },
                "white_host_name": {
                    "type": "string"
                },
                "white_list": {
                    "type": "string"
                }
            }
        },
        "dto.ServiceAddHTTPInput": {
            "type": "object",
            "required": [
                "ip_list",
                "rule",
                "service_desc",
                "service_name",
                "weight_list"
            ],
            "properties": {
                "black_list": {
                    "description": "黑名单ip",
                    "type": "string"
                },
                "clientip_flow_limit": {
                    "description": "\u0008客户端ip限流",
                    "type": "integer"
                },
                "header_transfor": {
                    "description": "header转换",
                    "type": "string"
                },
                "ip_list": {
                    "description": "ip列表",
                    "type": "string"
                },
                "need_https": {
                    "description": "支持https",
                    "type": "integer"
                },
                "need_strip_uri": {
                    "description": "启用strip_uri",
                    "type": "integer"
                },
                "need_websocket": {
                    "description": "是否支持websocket",
                    "type": "integer"
                },
                "open_auth": {
                    "description": "关键词",
                    "type": "integer"
                },
                "round_type": {
                    "description": "轮询方式",
                    "type": "integer"
                },
                "rule": {
                    "description": "域名或者前缀",
                    "type": "string"
                },
                "rule_type": {
                    "description": "接入类型",
                    "type": "integer"
                },
                "service_desc": {
                    "description": "服务描述",
                    "type": "string"
                },
                "service_flow_limit": {
                    "description": "服务端限流",
                    "type": "integer"
                },
                "service_name": {
                    "description": "服务名",
                    "type": "string"
                },
                "upstream_connect_timeout": {
                    "description": "建立连接超时, 单位s",
                    "type": "integer"
                },
                "upstream_header_timeout": {
                    "description": "获取header超时, 单位s",
                    "type": "integer"
                },
                "upstream_idle_timeout": {
                    "description": "链接最大空闲时间, 单位s",
                    "type": "integer"
                },
                "upstream_max_idle": {
                    "description": "最大空闲链接数",
                    "type": "integer"
                },
                "url_rewrite": {
                    "description": "url重写功能",
                    "type": "string"
                },
                "weight_list": {
                    "description": "\u0008权重列表",
                    "type": "string"
                },
                "white_list": {
                    "description": "白名单ip",
                    "type": "string"
                }
            }
        },
        "dto.ServiceAddTcpInput": {
            "type": "object",
            "required": [
                "ip_list",
                "port",
                "service_desc",
                "service_name",
                "weight_list"
            ],
            "properties": {
                "black_list": {
                    "type": "string"
                },
                "clientip_flow_limit": {
                    "type": "integer"
                },
                "forbid_list": {
                    "type": "string"
                },
                "header_transfor": {
                    "type": "string"
                },
                "ip_list": {
                    "type": "string"
                },
                "open_auth": {
                    "type": "integer"
                },
                "port": {
                    "type": "integer"
                },
                "round_type": {
                    "type": "integer"
                },
                "service_desc": {
                    "type": "string"
                },
                "service_flow_limit": {
                    "type": "integer"
                },
                "service_name": {
                    "type": "string"
                },
                "weight_list": {
                    "type": "string"
                },
                "white_host_name": {
                    "type": "string"
                },
                "white_list": {
                    "type": "string"
                }
            }
        },
        "dto.ServiceListItemOutput": {
            "type": "object",
            "properties": {
                "id": {
                    "description": "id",
                    "type": "integer"
                },
                "load_type": {
                    "description": "类型",
                    "type": "integer"
                },
                "qpd": {
                    "description": "qpd",
                    "type": "integer"
                },
                "qps": {
                    "description": "qps",
                    "type": "integer"
                },
                "service_addr": {
                    "description": "服务地址",
                    "type": "string"
                },
                "service_desc": {
                    "description": "服务描述",
                    "type": "string"
                },
                "service_name": {
                    "description": "服务名称",
                    "type": "string"
                },
                "total_node": {
                    "description": "节点数",
                    "type": "integer"
                }
            }
        },
        "dto.ServiceListOutput": {
            "type": "object",
            "properties": {
                "list": {
                    "description": "列表",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.ServiceListItemOutput"
                    }
                },
                "total": {
                    "description": "总数",
                    "type": "integer"
                }
            }
        },
        "dto.ServiceStatOutput": {
            "type": "object",
            "properties": {
                "today": {
                    "description": "列表",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "yesterday": {
                    "description": "列表",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        "dto.ServiceUpdateGrpcInput": {
            "type": "object",
            "required": [
                "id",
                "ip_list",
                "port",
                "service_desc",
                "service_name",
                "weight_list"
            ],
            "properties": {
                "black_list": {
                    "type": "string"
                },
                "clientip_flow_limit": {
                    "type": "integer"
                },
                "forbid_list": {
                    "type": "string"
                },
                "header_transfor": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "ip_list": {
                    "type": "string"
                },
                "open_auth": {
                    "type": "integer"
                },
                "port": {
                    "type": "integer"
                },
                "round_type": {
                    "type": "integer"
                },
                "service_desc": {
                    "type": "string"
                },
                "service_flow_limit": {
                    "type": "integer"
                },
                "service_name": {
                    "type": "string"
                },
                "weight_list": {
                    "type": "string"
                },
                "white_host_name": {
                    "type": "string"
                },
                "white_list": {
                    "type": "string"
                }
            }
        },
        "dto.ServiceUpdateHTTPInput": {
            "type": "object",
            "required": [
                "id",
                "ip_list",
                "rule",
                "service_desc",
                "service_name",
                "weight_list"
            ],
            "properties": {
                "black_list": {
                    "description": "黑名单ip",
                    "type": "string"
                },
                "clientip_flow_limit": {
                    "description": "\u0008客户端ip限流",
                    "type": "integer"
                },
                "header_transfor": {
                    "description": "header转换",
                    "type": "string"
                },
                "id": {
                    "description": "服务ID",
                    "type": "integer",
                    "example": 62
                },
                "ip_list": {
                    "description": "ip列表",
                    "type": "string",
                    "example": "127.0.0.1:80"
                },
                "need_https": {
                    "description": "支持https",
                    "type": "integer"
                },
                "need_strip_uri": {
                    "description": "启用strip_uri",
                    "type": "integer"
                },
                "need_websocket": {
                    "description": "是否支持websocket",
                    "type": "integer"
                },
                "open_auth": {
                    "description": "关键词",
                    "type": "integer"
                },
                "round_type": {
                    "description": "轮询方式",
                    "type": "integer"
                },
                "rule": {
                    "description": "域名或者前缀",
                    "type": "string",
                    "example": "/test_http_service_indb"
                },
                "rule_type": {
                    "description": "接入类型",
                    "type": "integer"
                },
                "service_desc": {
                    "description": "服务描述",
                    "type": "string",
                    "example": "test_http_service_indb"
                },
                "service_flow_limit": {
                    "description": "服务端限流",
                    "type": "integer"
                },
                "service_name": {
                    "description": "服务名",
                    "type": "string",
                    "example": "test_http_service_indb"
                },
                "upstream_connect_timeout": {
                    "description": "建立连接超时, 单位s",
                    "type": "integer"
                },
                "upstream_header_timeout": {
                    "description": "获取header超时, 单位s",
                    "type": "integer"
                },
                "upstream_idle_timeout": {
                    "description": "链接最大空闲时间, 单位s",
                    "type": "integer"
                },
                "upstream_max_idle": {
                    "description": "最大空闲链接数",
                    "type": "integer"
                },
                "url_rewrite": {
                    "description": "url重写功能",
                    "type": "string"
                },
                "weight_list": {
                    "description": "\u0008权重列表",
                    "type": "string",
                    "example": "50"
                },
                "white_list": {
                    "description": "白名单ip",
                    "type": "string"
                }
            }
        },
        "dto.ServiceUpdateTcpInput": {
            "type": "object",
            "required": [
                "id",
                "ip_list",
                "port",
                "service_desc",
                "service_name",
                "weight_list"
            ],
            "properties": {
                "black_list": {
                    "type": "string"
                },
                "clientip_flow_limit": {
                    "type": "integer"
                },
                "forbid_list": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "ip_list": {
                    "type": "string"
                },
                "open_auth": {
                    "type": "integer"
                },
                "port": {
                    "type": "integer"
                },
                "round_type": {
                    "type": "integer"
                },
                "service_desc": {
                    "type": "string"
                },
                "service_flow_limit": {
                    "type": "integer"
                },
                "service_name": {
                    "type": "string"
                },
                "weight_list": {
                    "type": "string"
                },
                "white_host_name": {
                    "type": "string"
                },
                "white_list": {
                    "type": "string"
                }
            }
        },
        "dto.StatisticsOutput": {
            "type": "object",
            "required": [
                "today",
                "yesterday"
            ],
            "properties": {
                "today": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "yesterday": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        "middleware.Response": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object"
                },
                "errmsg": {
                    "type": "string"
                },
                "errno": {
                    "type": "integer"
                },
                "stack": {
                    "type": "object"
                },
                "trace_id": {
                    "type": "object"
                }
            }
        }
    }
}`

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

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

type s struct{}

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

	t, err := template.New("swagger_info").Funcs(template.FuncMap{
		"marshal": func(v interface{}) string {
			a, _ := json.Marshal(v)
			return string(a)
		},
	}).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(swag.Name, &s{})
}
