{
    "endpoint": [
        {
            "id": "public",
            "name": "Public"
        },
        {
            "id": "private",
            "name": "Private Endpoint"
        },
        {
            "id": "peering",
            "name": "VPC Peering"
        }
    ],
    "client": [
        {
            "id": "general",
            "name": "General",
            "options": [
                {
                    "id": "generalparams",
                    "name": "Parameters"
                },
                {
                    "id": "generalstring",
                    "name": "Connection String"
                }
            ]
        },
        {
            "id": "mysqlcli",
            "name": "MySQL CLI"
        },
        {
            "id": "mycli",
            "name": "MyCLI"
        },
        {
            "id": "mysqlconnectorj",
            "name": "Java(MySQL Connector)"
        },
        {
            "id": "pythonmysqlclient",
            "name": "Python(mysqlclient)"
        },
        {
            "id": "pythonpymysql",
            "name": "Python(PyMySQL)"
        },
        {
            "id": "pythonmysqlconnector",
            "name": "Python(MySQL Connector)"
        },
        {
            "id": "nodemysql2",
            "name": "Node.js(mysql2)"
        },
        {
            "id": "go",
            "name": "Go"
        },
        {
            "id": "rails",
            "name": "Rails"
        }
    ],
    "variable": [
        {
            "id": "host",
            "placeholder": "<HOST>"
        },
        {
            "id": "port",
            "placeholder": "<PORT>"
        },
        {
            "id": "username",
            "placeholder": "<USERNAME>"
        },
        {
            "id": "password",
            "placeholder": "<PASSWORD>"
        },
        {
            "id": "database",
            "placeholder": "<DB>"
        },
        {
            "id": "ca_path",
            "placeholder": "<CA_PATH>"
        }
    ],
    "connection": [
        {
            "endpoint": "public",
            "client": "generalparams",
            "type": "parameter",
            "path": "./public/general/params"
        },
        {
            "endpoint": "private",
            "client": "generalparams",
            "type": "parameter",
            "path": "./private/general/params"
        },
        {
            "endpoint": "peering",
            "client": "generalparams",
            "type": "parameter",
            "path": "./peering/general/params"
        },
        {
            "endpoint": "public",
            "client": "generalstring",
            "type": "code",
            "path": "./public/general/string"
        },
        {
            "endpoint": "private",
            "client": "generalstring",
            "type": "code",
            "path": "./private/general/string"
        },
        {
            "endpoint": "peering",
            "client": "generalstring",
            "type": "code",
            "path": "./peering/general/string"
        },
        {
            "endpoint": "public",
            "client": "mysqlcli",
            "type": "code",
            "path": "./public/mysql.sh"
        },
        {
            "endpoint": "private",
            "client": "mysqlcli",
            "type": "code",
            "path": "./private/mysql.sh"
        },
        {
            "endpoint": "peering",
            "client": "mysqlcli",
            "type": "code",
            "path": "./peering/mysql.sh"
        },
        {
            "endpoint": "public",
            "client": "mycli",
            "type": "code",
            "path": "./public/mycli.sh"
        },
        {
            "endpoint": "private",
            "client": "mycli",
            "type": "code",
            "path": "./private/mycli.sh"
        },
        {
            "endpoint": "peering",
            "client": "mycli",
            "type": "code",
            "path": "./peering/mycli.sh"
        },
        {
            "endpoint": "public",
            "client": "mysqlconnectorj",
            "type": "code",
            "path": "./public/mysql.java",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-java-jdbc"
        },
        {
            "endpoint": "private",
            "client": "mysqlconnectorj",
            "type": "code",
            "path": "./private/mysql.java",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-java-jdbc"
        },
        {
            "endpoint": "peering",
            "client": "mysqlconnectorj",
            "type": "code",
            "path": "./peering/mysql.java",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-java-jdbc"
        },
        {
            "endpoint": "public",
            "client": "pythonmysqlclient",
            "type": "code",
            "path": "./public/python/mysqlclient.py",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-python-mysqlclient"
        },
        {
            "endpoint": "private",
            "client": "pythonmysqlclient",
            "type": "code",
            "path": "./private/python/mysqlclient.py",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-python-mysqlclient"
        },
        {
            "endpoint": "peering",
            "client": "pythonmysqlclient",
            "type": "code",
            "path": "./peering/python/mysqlclient.py",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-python-mysqlclient"
        },
        {
            "endpoint": "public",
            "client": "pythonpymysql",
            "type": "code",
            "path": "./public/python/pymysql.py",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-python-pymysql"
        },
        {
            "endpoint": "private",
            "client": "pythonpymysql",
            "type": "code",
            "path": "./private/python/pymysql.py",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-python-pymysql"
        },
        {
            "endpoint": "peering",
            "client": "pythonpymysql",
            "type": "code",
            "path": "./peering/python/pymysql.py",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-python-pymysql"
        },
        {
            "endpoint": "public",
            "client": "pythonmysqlconnector",
            "type": "code",
            "path": "./public/python/connector.py",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-python-mysql-connector"
        },
        {
            "endpoint": "private",
            "client": "pythonmysqlconnector",
            "type": "code",
            "path": "./private/python/connector.py",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-python-mysql-connector"
        },
        {
            "endpoint": "private",
            "client": "pythonmysqlconnector",
            "type": "code",
            "path": "./peering/python/connector.py",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-python-mysql-connector"
        },
        {
            "endpoint": "public",
            "client": "nodemysql2",
            "type": "code",
            "path": "./public/mysql2.js",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-nodejs-mysql2"
        },
        {
            "endpoint": "private",
            "client": "nodemysql2",
            "type": "code",
            "path": "./private/mysql2.js",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-nodejs-mysql2"
        },
        {
            "endpoint": "peering",
            "client": "nodemysql2",
            "type": "code",
            "path": "./peering/mysql2.js",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-nodejs-mysql2"
        },
        {
            "endpoint": "public",
            "client": "go",
            "type": "code",
            "path": "./public/mysql.go",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-golang-sql-driver"
        },
        {
            "endpoint": "private",
            "client": "go",
            "type": "code",
            "path": "./private/mysql.go",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-golang-sql-driver"
        },
        {
            "endpoint": "peering",
            "client": "go",
            "type": "code",
            "path": "./peering/mysql.go",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-golang-sql-driver"
        },
        {
            "endpoint": "public",
            "client": "rails",
            "type": "code",
            "path": "./public/rails.yml",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-ruby-rails"
        },
        {
            "endpoint": "private",
            "client": "rails",
            "type": "code",
            "path": "./private/rails.yml",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-ruby-rails"
        },
        {
            "endpoint": "peering",
            "client": "rails",
            "type": "code",
            "path": "./peering/rails.yml",
            "doc": "https://docs.pingcap.com/tidbcloud/dev-guide-sample-application-ruby-rails"
        }
    ]
}
