json_schema: {
      "properties": {
          "networking": {
              "description": "OpenLDAP networking configuration properties",
              "properties": {
                  "external_access": {
                      "description": "Enable access from outside the cluster through Marathon-LB.\nNOTE: this connection is unencrypted.",
                      "properties": {
                          "enable": {
                              "default": false,
                              "description": "Enable or disable creating a VIP for external access through a public node running Marathon-LB.",
                              "type": "boolean"
                          },
                          "external_port": {
                              "default": 10389,
                              "description": "For external access, port number to be used for clear communication in the external Marathon-LB load balancer",
                              "type": "number"
                          }
                      },
                      "type": "object"
                  },
                  "port": {
                      "default": 389,
                      "description": "Port number to be used for clear communication internally to the cluster.",
                      "type": "number"
                  }
              },
              "type": "object"
          },
          "openldap": {
              "description": "OpenLDAP service configuration properties",
              "properties": {
                  "additional_modules": {
                      "description": "Comma-separated list of modules to load.",
                      "type": "string"
                  },
                  "additional_schemas": {
                      "description": "Loads additional schemas provided in the slapd package.",
                      "type": "string"
                  },
                  "admin_password": {
                      "default": "admin",
                      "description": "Administrator password. Defaults to 'admin'.",
                      "type": "string"
                  },
                  "config_password": {
                      "default": "password",
                      "description": "Allows password protected access to the dn=config branch. This helps to reconfigure the server without interruption. Defaults to 'password'",
                      "type": "string"
                  },
                  "cpus": {
                      "default": 0.3,
                      "description": "CPU shares to allocate to each OpenLDAP node.",
                      "minimum": 0.3,
                      "type": "number"
                  },
                  "domain": {
                      "default": "example.org",
                      "description": "LDAP domain. Defaults to example.org",
                      "type": "string"
                  },
                  "force_reconfigure": {
                      "default": false,
                      "description": "Reconfigure the service after the image has been initialized.",
                      "type": "boolean"
                  },
                  "mem": {
                      "default": 128.0,
                      "description": "Memory to allocate to each OpenLDAP node.",
                      "minimum": 128.0,
                      "type": "number"
                  },
                  "organization": {
                      "default": "example",
                      "description": "Organization name.",
                      "type": "string"
                  }
              },
              "required": [
                  "cpus",
                  "mem"
              ],
              "type": "object"
          },
          "service": {
              "description": "DC/OS service configuration properties",
              "properties": {
                  "name": {
                      "default": "openldap",
                      "description": "Name of this service instance.",
                      "type": "string"
                  }
              },
              "type": "object"
          },
          "storage": {
              "description": "OpenLDAP storage configuration properties",
              "properties": {
                  "host_volume": {
                      "default": "/tmp",
                      "description": "The location of a volume on the host to be used for persisting OpenLDAP data. The final location will be derived from this value plus the name set in `name` (e.g. `/mnt/host_volume/openldap`). Note that this path must be the same on all DCOS agents.",
                      "type": "string"
                  },
                  "persistence": {
                      "description": "Enable persistent storage.",
                      "properties": {
                          "enable": {
                              "default": false,
                              "description": "Enable or disable data persistence.",
                              "type": "boolean"
                          },
                          "ldap_volume_size": {
                              "default": 256,
                              "description": "Size in MBs of the volume to be created for the LDAP database",
                              "type": "number"
                          },
                          "slapd_volume_size": {
                              "default": 64,
                              "description": "Size in MBs of the volume to be created for internal storage of the SLAPD daemon.",
                              "type": "number"
                          }
                      },
                      "type": "object"
                  }
              },
              "type": "object"
          }
      }
  }