{
    "properties": {
        "general": {
            "description": "Storage configuration properties",
            "properties": {
                "auth": {
                    "default": false,
                    "description": "Run with security",
                    "type": "boolean"
                },
                "httpinterface": {
                    "default": false,
                    "description": "Enable http interface",
                    "type": "boolean"
                },
                "jsonp": {
                    "default": false,
                    "description": "Allow JSONP access via http (has security implications)",
                    "type": "boolean"
                },
                "maxConns": {
                    "default": 1000000,
                    "description": "Max number of simultaneous connections",
                    "type": "number"
                },
                "noIndexBuildRetry": {
                    "default": false,
                    "description": "Do not retry any index builds that were interrupted by shutdown",
                    "type": "boolean"
                },
                "noscripting": {
                    "default": false,
                    "description": "Disable scripting engine",
                    "type": "boolean"
                },
                "notablescan": {
                    "default": false,
                    "description": "Do not allow table scans",
                    "type": "boolean"
                },
                "rest": {
                    "default": false,
                    "description": "Turn on simple rest api",
                    "type": "boolean"
                }
            },
            "required": [
                "maxConns"
            ],
            "type": "object"
        },
        "replica-set": {
            "description": "Replica set configuration properties",
            "properties": {
                "enable": {
                    "default": false,
                    "description": "Enable Replica set properties",
                    "type": "boolean"
                },
                "enableMajorityReadConcern": {
                    "default": false,
                    "description": "Enables majority readConcern",
                    "type": "boolean"
                },
                "replIndexPrefetch": {
                    "default": "all",
                    "description": "Specify index prefetching behavior (if secondary) [none|_id_only|all]",
                    "type": "string"
                },
                "replSet": {
                    "default": "rs1",
                    "description": "<setname>[/<optionalseedhostlist>]",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "service": {
            "description": "Service configuration properties",
            "properties": {
                "bridge": {
                    "description": "Bridge configuration properties",
                    "properties": {
                        "enable": {
                            "default": false,
                            "description": "Whether to use BRIDGE networking mode for Docker container. By default, this is false and HOST mode networking is used.",
                            "type": "boolean"
                        },
                        "http_port": {
                            "default": 0,
                            "description": "HTTP Port if general.httpinterface is enabled",
                            "type": "integer"
                        },
                        "mongodb_port": {
                            "default": 0,
                            "description": "MongoDB Port",
                            "type": "integer"
                        }
                    },
                    "type": "object"
                },
                "cpus": {
                    "default": 1,
                    "description": "CPU shares to allocate to each MongoDB instance",
                    "minimum": 0.1,
                    "type": "number"
                },
                "disk": {
                    "default": 0,
                    "description": "Disk (MB) to allocate to each MongoDB instance",
                    "minimum": 0,
                    "type": "number"
                },
                "host_volume": {
                    "description": "Host volume configuration properties",
                    "properties": {
                        "enable": {
                            "default": true,
                            "description": "Enable the host volume properties",
                            "type": "boolean"
                        },
                        "location": {
                            "default": "/tmp",
                            "description": "The location of a volume on the host to be used for persisting MongoDB data. The final location will be derived from this value plus the name set in `name` (e.g. `/mnt/host_volume/mongodb`). Note that this path must be the same on all DCOS agents",
                            "type": "string"
                        }
                    },
                    "type": "object"
                },
                "instances": {
                    "default": 1,
                    "description": "Number of MongoDB instances to run",
                    "minimum": 1,
                    "type": "integer"
                },
                "marathon-uri": {
                    "default": "http://master.mesos:8080",
                    "description": "URI of Marathon instance",
                    "type": "string"
                },
                "mem": {
                    "default": 1024.0,
                    "description": "Memory (MB) to allocate to each MongoDB task",
                    "minimum": 256.0,
                    "type": "number"
                },
                "name": {
                    "default": "mongodb",
                    "description": "Name for this MongoDB instance",
                    "type": "string"
                },
                "role": {
                    "default": "*",
                    "description": "Deploy MongoDB only on nodes with this role",
                    "type": "string"
                }
            },
            "required": [
                "name",
                "instances",
                "cpus",
                "mem",
                "disk",
                "role",
                "marathon-uri"
            ],
            "type": "object"
        },
        "storage": {
            "description": "Storage configuration properties",
            "properties": {
                "directoryperdb": {
                    "default": false,
                    "description": "Each database will be stored in a separate directory",
                    "type": "boolean"
                },
                "nojournal": {
                    "default": false,
                    "description": "disable journaling (journaling is on by default for 64 bit)",
                    "type": "boolean"
                },
                "smallfiles": {
                    "default": false,
                    "description": "Use a smaller default file size",
                    "type": "boolean"
                },
                "storageEngine": {
                    "default": "wiredTiger",
                    "description": "What storage engine to use",
                    "type": "string"
                }
            },
            "required": [
                "storageEngine"
            ],
            "type": "object"
        }
    },
    "type": "object"
}