{
    "properties": {
        "authentication": {
            "description": "Web interface authentication",
            "properties": {
                "basic": {
                    "description": "Basic authentication",
                    "properties": {
                        "password": {
                            "description": "Secret password",
                            "type": "string"
                        },
                        "user": {
                            "default": "admin",
                            "description": "Username",
                            "type": "string"
                        }
                    },
                    "type": "object"
                },
                "ldap": {
                    "description": "LDAP",
                    "properties": {
                        "base": {
                            "description": "Base DN, e.g.: ou=active,ou=Employee",
                            "type": "string"
                        },
                        "domain": {
                            "description": "Domain, e.g. example.com",
                            "type": "string"
                        },
                        "method": {
                            "description": "Method, e.g. simple",
                            "type": "string"
                        },
                        "url": {
                            "description": "LDAP server ldaps://host:port",
                            "type": "string"
                        }
                    },
                    "type": "object"
                },
                "type": {
                    "default": "none",
                    "description": "Authentication method. Either 'none', 'basic' or 'ldap'",
                    "enum": [
                        "none",
                        "basic",
                        "ldap"
                    ],
                    "type": "string"
                }
            },
            "type": "object"
        },
        "cerebro": {
            "additionalProperties": false,
            "description": "Cerebro configuration",
            "properties": {
                "config_path": {
                    "default": "./application.conf",
                    "description": "Configuration file",
                    "type": "string"
                },
                "db_driver": {
                    "default": "org.sqlite.JDBC",
                    "description": "DB driver",
                    "type": "string"
                },
                "db_url": {
                    "default": "jdbc:sqlite:./cerebro.db",
                    "description": "DB connection",
                    "type": "string"
                },
                "hist_size": {
                    "default": 50,
                    "description": "REST request history max size per user",
                    "type": "integer"
                },
                "secret": {
                    "description": "Secret will be used to sign session cookies, CSRF tokens and for other encryption utilities.",
                    "type": "string"
                }
            },
            "required": [
                "config_path"
            ],
            "type": "object"
        },
        "elastic": {
            "description": "Elasticsearch clusters",
            "properties": {
                "cluster_1": {
                    "default": "http://master.elastic.l4lb.thisdcos.directory:9200",
                    "description": "Elasticsearch URI",
                    "type": "string"
                },
                "cluster_2": {
                    "description": "Elasticsearch URI",
                    "type": "string"
                },
                "cluster_3": {
                    "description": "Elasticsearch URI",
                    "type": "string"
                },
                "cluster_4": {
                    "description": "Elasticsearch URI",
                    "type": "string"
                },
                "cluster_5": {
                    "description": "Elasticsearch URI",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "networking": {
            "description": "Cerebro networking configuration properties",
            "properties": {
                "external_access": {
                    "description": "Enable access from outside the cluster through Marathon-LB.\nNOTE: this connection is unencrypted.",
                    "properties": {
                        "port": {
                            "default": 13001,
                            "description": "For external access, port number to be used for clear communication in the external Marathon-LB load balancer",
                            "type": "number"
                        },
                        "virtual_host": {
                            "description": "For external access, Virtual Hostname to be used in the external load balancer.",
                            "type": "string"
                        }
                    },
                    "type": "object"
                }
            },
            "type": "object"
        },
        "service": {
            "description": "DC/OS service configuration properties",
            "properties": {
                "cpus": {
                    "default": 0.5,
                    "description": "CPU shares to allocate",
                    "minimum": 0.5,
                    "type": "number"
                },
                "heap": {
                    "default": 1024.0,
                    "description": "Java heap size (-Xmx)",
                    "minimum": 256.0,
                    "type": "number"
                },
                "instances": {
                    "default": 1,
                    "description": "Number of desired instances",
                    "type": "integer"
                },
                "mem": {
                    "default": 1180.0,
                    "description": "Memory to allocate",
                    "minimum": 300.0,
                    "type": "number"
                },
                "name": {
                    "default": "cerebro",
                    "description": "The name of the Cerebro service instance.",
                    "type": "string"
                },
                "user": {
                    "default": "nobody",
                    "description": "The user that runs the Cerebro service and owns the Mesos sandbox.",
                    "type": "string"
                }
            },
            "required": [
                "name",
                "cpus",
                "mem",
                "heap",
                "instances"
            ],
            "type": "object"
        }
    },
    "type": "object"
}