json_schema: {
      "properties": {
          "marathon-lb": {
              "properties": {
                  "auto-assign-service-ports": {
                      "default": false,
                      "description": "Auto assign service ports for tasks which use IP-per-task. See https://github.com/mesosphere/marathon-lb#mesos-with-ip-per-task-support for details.",
                      "type": "boolean"
                  },
                  "bind-http-https": {
                      "default": true,
                      "description": "Reserve ports 80 and 443 for the LB. Use this if you intend to use virtual hosts.",
                      "type": "boolean"
                  },
                  "cpus": {
                      "default": 2,
                      "description": "CPU shares to allocate to each marathon-lb instance.",
                      "minimum": 1,
                      "type": "number"
                  },
                  "haproxy-group": {
                      "default": "external",
                      "description": "HAProxy group parameter. Matches with HAPROXY_GROUP in the app labels.",
                      "type": "string"
                  },
                  "haproxy-map": {
                      "default": true,
                      "description": "Enable HAProxy VHost maps for fast VHost routing.",
                      "type": "boolean"
                  },
                  "haproxy_global_default_options": {
                      "default": "redispatch,http-server-close,dontlognull",
                      "description": "Default global options for HAProxy.",
                      "type": "string"
                  },
                  "instances": {
                      "default": 1,
                      "description": "Number of instances to run.",
                      "minimum": 1,
                      "type": "integer"
                  },
                  "marathon-uri": {
                      "default": "http://marathon.mesos:8080",
                      "description": "URI of Marathon instance",
                      "type": "string"
                  },
                  "maximumOverCapacity": {
                      "default": 0.2,
                      "description": "Maximum over capacity.",
                      "minimum": 0,
                      "type": "number"
                  },
                  "mem": {
                      "default": 1024.0,
                      "description": "Memory (MB) to allocate to each marathon-lb task.",
                      "minimum": 256.0,
                      "type": "number"
                  },
                  "minimumHealthCapacity": {
                      "default": 0.5,
                      "description": "Minimum health capacity.",
                      "minimum": 0,
                      "type": "number"
                  },
                  "name": {
                      "default": "marathon-lb",
                      "description": "Name for this LB instance",
                      "type": "string"
                  },
                  "role": {
                      "default": "slave_public",
                      "description": "Deploy marathon-lb only on nodes with this role.",
                      "type": "string"
                  },
                  "secret_name": {
                      "default": "",
                      "description": "Name of the Secret Store credentials to use for DC/OS service authentication. This should be left empty unless service authentication is needed.",
                      "type": "string"
                  },
                  "ssl-cert": {
                      "description": "TLS Cert and private key for HTTPS.",
                      "type": "string"
                  },
                  "sysctl-params": {
                      "default": "net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_fin_timeout=30 net.ipv4.tcp_max_syn_backlog=10240 net.ipv4.tcp_max_tw_buckets=400000 net.ipv4.tcp_max_orphans=60000 net.core.somaxconn=10000",
                      "description": "sysctl params to set at startup for HAProxy.",
                      "type": "string"
                  },
                  "template-url": {
                      "default": "",
                      "description": "URL to tarball containing a directory templates/ to customize haproxy config.",
                      "type": "string"
                  }
              },
              "required": [
                  "cpus",
                  "mem",
                  "haproxy-group",
                  "instances",
                  "name"
              ],
              "type": "object"
          }
      },
      "type": "object"
  }