{
  "$schema" : "https://json-schema.org/draft/2019-09/schema",
  "$defs" : {
    "Database" : {
      "type" : "object",
      "properties" : {
        "Url" : {
          "description" : "JDBC Url to use for connections.",
          "additionalProperties" : false,
          "type" : "string",
          "format" : "uri",
          "examples" : [ "jdbc:{vendor}://{host}:{port}/{dbName}", "jdbc:postgresql://pghost/prod", "jdbc:mysql://mysqlhost/erpTstaging", "jdbc:sqlserver://microsoft-host;databaseName=stammdaten" ]
        },
        "Driver" : {
          "description" : "JDBC driver Name.",
          "additionalProperties" : false,
          "type" : "string",
          "examples" : [ "com.mysql.cj.jdbc.Driver", "org.postgresql.Driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver", "oracle.jdbc.OracleDriver", "org.mariadb.jdbc.Driver", "org.hsqldb.jdbc.JDBCDriver" ]
        },
        "Icon" : {
          "description" : "Reference to a custom image.",
          "additionalProperties" : false,
          "type" : "string",
          "format" : "uri",
          "examples" : [ "res:/webContent/myIcon.png" ]
        },
        "UserName" : {
          "type" : "string"
        },
        "Password" : {
          "type" : "string",
          "description" : "Secret password, should be stored encrypted. Encrypted values have a ${decrypt:} prefix",
          "format" : "password"
        },
        "MaxConnections" : {
          "type" : "integer"
        },
        "Properties" : {
          "$ref" : "#/$defs/Map(String,String)",
          "description" : "Driver specific custom properties"
        }
      },
      "additionalProperties" : false
    },
    "Map(String,DatabaseSchema)" : {
      "type" : "object",
      "additionalProperties" : {
        "$ref" : "#/$defs/Database"
      }
    },
    "Map(String,String)" : {
      "type" : "object",
      "additionalProperties" : {
        "type" : "string"
      }
    }
  },
  "type" : "object",
  "properties" : {
    "Databases" : {
      "$ref" : "#/$defs/Map(String,DatabaseSchema)"
    }
  },
  "additionalProperties" : false
}
