{
  "endpoint": [
    {
      "id": "public",
      "name": "Public Endpoint"
    },
    {
      "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/java/mysql",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-java-jdbc/"
    },
    {
      "endpoint": "private",
      "client": "mysqlconnectorj",
      "type": "code",
      "path": "./private/java/mysql",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-java-jdbc/"
    },
    {
      "endpoint": "peering",
      "client": "mysqlconnectorj",
      "type": "code",
      "path": "./peering/java/mysql",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-java-jdbc/"
    },
    {
      "endpoint": "public",
      "client": "pythonmysqlclient",
      "type": "code",
      "path": "./public/python/mysqlclient.py",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-python-mysqlclient/"
    },
    {
      "endpoint": "private",
      "client": "pythonmysqlclient",
      "type": "code",
      "path": "./private/python/mysqlclient.py",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-python-mysqlclient/"
    },
    {
      "endpoint": "peering",
      "client": "pythonmysqlclient",
      "type": "code",
      "path": "./peering/python/mysqlclient.py",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-python-mysqlclient/"
    },
    {
      "endpoint": "public",
      "client": "pythonpymysql",
      "type": "code",
      "path": "./public/python/pymysql.py",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-python-pymysql/"
    },
    {
      "endpoint": "private",
      "client": "pythonpymysql",
      "type": "code",
      "path": "./private/python/pymysql.py",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-python-pymysql/"
    },
    {
      "endpoint": "peering",
      "client": "pythonpymysql",
      "type": "code",
      "path": "./peering/python/pymysql.py",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-python-pymysql/"
    },
    {
      "endpoint": "public",
      "client": "pythonmysqlconnector",
      "type": "code",
      "path": "./public/python/connector.py",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-python-mysql-connector/"
    },
    {
      "endpoint": "private",
      "client": "pythonmysqlconnector",
      "type": "code",
      "path": "./private/python/connector.py",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-python-mysql-connector/"
    },
    {
      "endpoint": "peering",
      "client": "pythonmysqlconnector",
      "type": "code",
      "path": "./peering/python/connector.py",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-python-mysql-connector/"
    },
    {
      "endpoint": "public",
      "client": "nodemysql2",
      "type": "code",
      "path": "./public/mysql2.jstxt",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-nodejs-mysql2/"
    },
    {
      "endpoint": "private",
      "client": "nodemysql2",
      "type": "code",
      "path": "./private/mysql2.jstxt",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-nodejs-mysql2/"
    },
    {
      "endpoint": "peering",
      "client": "nodemysql2",
      "type": "code",
      "path": "./peering/mysql2.jstxt",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-nodejs-mysql2/"
    },
    {
      "endpoint": "public",
      "client": "go",
      "type": "code",
      "path": "./public/mysql.go",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-golang-sql-driver/"
    },
    {
      "endpoint": "private",
      "client": "go",
      "type": "code",
      "path": "./private/mysql.go",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-golang-sql-driver/"
    },
    {
      "endpoint": "peering",
      "client": "go",
      "type": "code",
      "path": "./peering/mysql.go",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-golang-sql-driver/"
    },
    {
      "endpoint": "public",
      "client": "rails",
      "type": "code",
      "path": "./public/rails.yml",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-ruby-rails/"
    },
    {
      "endpoint": "private",
      "client": "rails",
      "type": "code",
      "path": "./private/rails.yml",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-ruby-rails/"
    },
    {
      "endpoint": "peering",
      "client": "rails",
      "type": "code",
      "path": "./peering/rails.yml",
      "doc": "https://docs.pingcap.com/developer/dev-guide-sample-application-ruby-rails/"
    }
  ]
}
