{
  "$schema" : "https://json-schema.org/draft/2019-09/schema",
  "$defs" : {
    "EmailEncryption" : {
      "type" : "string",
      "enum" : [ "NONE", "START_TLS", "SSL" ]
    },
    "Server" : {
      "type" : "object",
      "properties" : {
        "Host" : {
          "type" : "string"
        },
        "Port" : {
          "type" : "integer",
          "default" : "-1"
        },
        "MailAddress" : {
          "type" : "string",
          "description" : "Email address that will be used for emails sent by the server (e.g. task notification emails)",
          "default" : "noreply@ivyserver.local"
        },
        "User" : {
          "type" : "string",
          "default" : "guest"
        },
        "Password" : {
          "type" : "string",
          "description" : "The password for the mail user",
          "format" : "password"
        },
        "EncryptionMethod" : {
          "$ref" : "#/$defs/EmailEncryption",
          "default" : "NONE"
        },
        "SessionProperties" : {
          "$ref" : "#/$defs/SessionProperties",
          "description" : "Additional properties which will be set on the mail session\nRead https://javaee.github.io/javamail/docs/api/com/sun/mail/smtp/package-summary.html"
        },
        "SSL" : {
          "$ref" : "#/$defs/Ssl",
          "description" : "certificates are to be stored in the Ivy keystore (default: configuration/keystore.p12; see below at SSL / Client), with the alias defined below."
        }
      },
      "additionalProperties" : false
    },
    "SessionProperties" : {
      "type" : "object",
      "properties" : {
        "mail.smtp.auth.xoauth2.disable" : {
          "type" : "boolean"
        }
      }
    },
    "Ssl" : {
      "type" : "object",
      "properties" : {
        "KeyAlias" : {
          "type" : "string"
        },
        "UseKey" : {
          "type" : "boolean"
        }
      },
      "additionalProperties" : false
    }
  },
  "type" : "object",
  "properties" : {
    "Server" : {
      "$ref" : "#/$defs/Server"
    }
  },
  "additionalProperties" : false
}
