{
    "properties": {
        "networking": {
            "description": "PostgreSQL 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. Defaults to FALSE.",
                            "type": "boolean"
                        },
                        "external_port": {
                            "default": 15432,
                            "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": 5432,
                    "description": "Port number to be used for clear communication internally to the cluster.",
                    "type": "number"
                }
            },
            "type": "object"
        },
        "postgresql": {
            "description": "PostgreSQL service configuration properties",
            "properties": {
                "cpus": {
                    "default": 0.3,
                    "description": "CPU shares to allocate to each PostgreSQL node.",
                    "minimum": 0.3,
                    "type": "number"
                },
                "dbname": {
                    "default": "admin",
                    "description": "Name for the default database that is created when the image is first started.",
                    "type": "string"
                },
                "initdbargs": {
                    "description": "Arguments to send to postgres initdb. The value is a space separated string of arguments as postgres initdb would expect them.",
                    "type": "string"
                },
                "mem": {
                    "default": 256.0,
                    "description": "Memory to allocate to each PostgreSQL node.",
                    "minimum": 256.0,
                    "type": "number"
                },
                "password": {
                    "default": "password",
                    "description": "Postgres password.",
                    "type": "string"
                },
                "user": {
                    "default": "admin",
                    "description": "Postgres user.",
                    "type": "string"
                }
            },
            "required": [
                "cpus",
                "mem"
            ],
            "type": "object"
        },
        "service": {
            "description": "DC/OS service configuration properties",
            "properties": {
                "name": {
                    "default": "postgresql",
                    "description": "Name of this service instance.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "storage": {
            "description": "PostgreSQL storage configuration properties",
            "properties": {
                "host_volume": {
                    "default": "/tmp",
                    "description": "The location of a volume on the host to be used for persisting PostgreSQL data. The final location will be derived from this value plus the name set in `name` (e.g. `/mnt/host_volume/postgresql`). This can be a mounted NFS drive. 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 persistent storage.",
                            "type": "boolean"
                        },
                        "volume_size": {
                            "default": 64,
                            "description": "If a new volume is to be created, this controls its size in MBs. Defaults to 64MBs",
                            "type": "number"
                        }
                    },
                    "type": "object"
                },
                "pgdata": {
                    "default": "pgdata",
                    "description": "Location of the database files.",
                    "type": "string"
                }
            },
            "type": "object"
        }
    }
}