{
  "$schema" : "https://json-schema.org/draft/2019-09/schema",
  "$defs" : {
    "Client" : {
      "type" : "object",
      "properties" : {
        "EnableInsecureSSL" : {
          "type" : "boolean",
          "description" : "Manipulates the JVMs default SSLSocketFactory, so that untrusted (self signed or outdated) certificates are silently accepted.\nThis could for instance be useful to generate a Webservice stub from an insecure WSDL location."
        },
        "TrustStore" : {
          "$ref" : "#/$defs/TrustStore",
          "description" : "A trust store is used to specify trusted server certificates or certificates of certification authorities.\nAn SSL client authenticates a server by using the certificates in a trust store.\nSelf signed or signed by an unknown certification authority can be added to this trustore."
        },
        "KeyStore" : {
          "$ref" : "#/$defs/KeyStore",
          "description" : "A key store is used to read client keys (certificates).\nThis is only required if a remote server requests a client certificate in order to authenticate the client."
        }
      },
      "additionalProperties" : false
    },
    "KeyStore" : {
      "type" : "object",
      "properties" : {
        "Algorithm" : {
          "type" : "string",
          "default" : "SunX509"
        },
        "File" : {
          "type" : "string",
          "default" : "configuration/keystore.p12"
        },
        "KeyPassword" : {
          "type" : "string",
          "description" : "Password of the 'ivy' certificate. ",
          "default" : "changeit",
          "format" : "password"
        },
        "Password" : {
          "type" : "string",
          "description" : "Password to access the store. ",
          "default" : "changeit",
          "format" : "password"
        },
        "Provider" : {
          "type" : "string"
        },
        "Type" : {
          "type" : "string",
          "default" : "PKCS12"
        },
        "UseCustom" : {
          "type" : "boolean"
        }
      },
      "additionalProperties" : false
    },
    "TrustStore" : {
      "type" : "object",
      "properties" : {
        "Algorithm" : {
          "type" : "string",
          "default" : "PKIX"
        },
        "File" : {
          "type" : "string",
          "default" : "configuration/truststore.p12"
        },
        "Password" : {
          "type" : "string",
          "description" : "Password to access the store. ",
          "default" : "changeit",
          "format" : "password"
        },
        "Provider" : {
          "type" : "string"
        },
        "Type" : {
          "type" : "string",
          "default" : "PKCS12"
        }
      },
      "additionalProperties" : false
    }
  },
  "type" : "object",
  "properties" : {
    "Client" : {
      "$ref" : "#/$defs/Client"
    }
  },
  "additionalProperties" : false
}
